ฉันเริ่มต้นด้วยแนวคิดของ @ user292677 และทำการปรับปรุงเพื่อแก้ไขปัญหาของฉัน:
- สร้างrepo ใหม่ใน GitHub
- cd ไปที่สำเนาในเครื่องของคุณสำหรับ repo เก่าที่คุณต้องการแยกออกมาซึ่งถูกตั้งค่าให้ติดตามสาขาโครงการใหม่ที่จะกลายเป็นมาสเตอร์ของrepo ใหม่
$ git push https://github.com/accountname/new-repo.git +new-project:master
repo Github ใหม่เสร็จสิ้นแล้ว ผลที่ได้คือ;
- พื้นที่เก็บข้อมูล Github ใหม่ชื่อใหม่ repo ,
- ซึ่ง
master
สอดคล้องกับโครงการใหม่ของ repo เก่าด้วย
- เก็บประวัติทั้งหมดไว้
ในความเป็นจริงฉันพบว่าโดยใช้วิธีนี้ฉันสามารถสร้าง repo ใหม่ด้วยการเลือกสาขาเลือกด้วยมือเปลี่ยนชื่อตามที่ฉันต้องการ:
$ git push git@github.com:accountname/new_repo +new-project:master +site3a:rails3
ผลที่ได้คือว่ามีอยู่ก่อนsite3aสาขาขณะนี้ยังย้ายไป repo ใหม่และจะปรากฏเป็นrails3 มันใช้งานได้ดีจริงๆ: แผนภาพเครือข่ายแสดงต้นแบบใหม่และRails3 ที่มีประวัติเต็มและความสัมพันธ์ที่ถูกต้องซึ่งกันและกัน
อัปเดต 2013-12-07: ใช้สิ่งนี้กับโครงการอื่นและตรวจสอบว่าสูตรนี้ยังใช้งานได้
อัปเดต 2018-01-11: อัปเดตขั้นตอนที่ 3 เพื่อใช้คำแนะนำ GitHub สำหรับโปรโตคอล https สูตรยังคงใช้งานได้