ในขณะที่ช่วยเพื่อนด้วยปัญหาคอมไพล์วันนี้ฉันต้องแนะนำสาขาที่ต้องแยกจากmaster
สาขาโดยสิ้นเชิง เนื้อหาของสาขานี้มีต้นกำเนิดแตกต่างจากสิ่งที่พัฒนาบนmaster
สาขา แต่จริง ๆ แล้วพวกเขาจะถูกรวมเข้ากับmaster
สาขาในภายหลัง
ฉันจำได้จากการอ่านGitของ John Wiegley จากด้านล่างขึ้นมาว่ากิ่งเป็นป้ายกำกับการกระทำที่เป็นไปตามอนุสัญญาบางอย่างและผูกมัดผูกติดอยู่กับต้นไม้หรือไม่ เราไปสร้างคอมมิทแม่แบบคอมมิทกับที่เก็บที่มีอยู่โดยใช้ระบบประปาของ git:
ดังนั้นเราจึงกำจัดไฟล์ทั้งหมดในดัชนี ...
$ git rm -rf .
... ไดเรกทอรีที่แยกและไฟล์จาก tarball เพิ่มเหล่านั้นไปยังดัชนี ...
$ git add .
... และสร้างวัตถุต้นไม้ ...
$ git write-tree
( git-write-tree
บอกเรา sha1sum ของวัตถุต้นไม้ที่สร้างขึ้น)
จากนั้นเรามุ่งมั่นที่ต้นไม้โดยไม่ต้องระบุผู้ปกครองกระทำ ...
$ echo "Imported project foo" | git commit-tree $TREE
( git-commit-tree
บอก sha1sum ของวัตถุกระทำที่สร้างขึ้น)
... และสร้างสาขาใหม่ที่ชี้ไปที่ความมุ่งมั่นที่สร้างขึ้นใหม่ของเรา
$ git update-ref refs/heads/other-branch $COMMIT
ในที่สุดเรากลับไปที่master
สาขาเพื่อทำงานต่อที่นั่น
$ git checkout -f master
ดูเหมือนว่าจะทำงานได้ตามแผนที่วางไว้ แต่นี่ไม่ใช่วิธีการที่ชัดเจนที่ฉันอยากจะแนะนำให้คนที่เพิ่งเริ่มใช้งานคอมไพล์ มีวิธีที่ง่ายกว่าในการสร้างสาขาใหม่ที่ไม่เกี่ยวข้องกับทุกอย่างที่เกิดขึ้นในพื้นที่เก็บข้อมูลหรือไม่?