หากคุณใช้branch
คำสั่งรูปแบบนี้(พร้อมจุดเริ่มต้น) ไม่สำคัญว่าคุณHEAD
จะอยู่ที่ไหน
คุณกำลังทำอะไรอยู่:
git checkout dev
git branch test 07aeec983bfc17c25f0b0a7c1d47da8e35df7af8
ครั้งแรกที่คุณตั้งค่าของคุณHEAD
ไปยังสาขาdev
,
07aeec98
ประการที่สองคุณเริ่มต้นสาขาใหม่ในการกระทำ ไม่มี bb.txt ที่คอมมิตนี้ (อ้างอิงจาก github repo ของคุณ)
หากคุณต้องการเริ่มสาขาใหม่ในสถานที่ที่คุณเพิ่งเช็คเอาต์คุณสามารถเรียกใช้สาขาโดยไม่มีจุดเริ่มต้น:
git branch test
หรือตามที่คนอื่นได้ตอบสาขาและชำระเงินที่นั่นในการดำเนินการเดียว:
git checkout -b test
ผมคิดว่าคุณอาจจะสับสนโดยความเป็นจริงว่าเป็นส่วนหนึ่งของสาขา07aeec98
dev
มันเป็นความจริงที่ว่านี้กระทำเป็นบรรพบุรุษของการเปลี่ยนแปลงของมันมีความจำเป็นที่จะไปถึงล่าสุดกระทำในdev
dev
แต่พวกเขาจะกระทำอื่น ๆ ที่มีความจำเป็นในการเข้าถึงล่าสุดและสิ่งเหล่านี้ไม่จำเป็นต้องมีในประวัติศาสตร์ของdev
07aeec98
8480e8ae
(ที่คุณเพิ่ม bb.txt) เป็นตัวอย่างที่ไม่อยู่ในประวัติของ07aeec98
. หากคุณสาขาจากคุณจะไม่ได้รับการเปลี่ยนแปลงที่นำโดย07aeec98
8480e8ae
กล่าวอีกนัยหนึ่ง: ถ้าคุณรวมสาขา A และสาขา B เข้ากับสาขา C จากนั้นสร้างสาขาใหม่โดยใช้ข้อตกลง A คุณจะไม่ได้รับการเปลี่ยนแปลงที่นำมาใช้ใน B
ที่นี่คุณมีสาขาหลักและ dev สองสาขาขนานกันซึ่งคุณรวมเข้ากับ dev การแยกสาขาออกจากการกระทำของต้นแบบ (เก่ากว่าการผสาน) จะไม่ทำให้คุณมีการเปลี่ยนแปลงของ dev
หากคุณต้องการรวมการเปลี่ยนแปลงใหม่จากต้นแบบไปยังสาขาคุณลักษณะของคุณอย่างถาวรคุณควรรวมmaster
เข้าด้วยกันและดำเนินการต่อ สิ่งนี้จะสร้างการรวมคอมมิตในสาขาคุณลักษณะของคุณ
หากคุณไม่ได้รับการตีพิมพ์สาขาคุณลักษณะของคุณคุณยังสามารถ rebase git rebase master featureA
พวกเขาในต้นแบบที่ปรับปรุง: เตรียมพร้อมที่จะแก้ปัญหาความขัดแย้งที่อาจเกิดขึ้น
หากคุณต้องการเวิร์กโฟลว์ที่คุณสามารถทำงานกับสาขาฟีเจอร์ได้โดยไม่ต้องผสานคอมมิตและยังผสานรวมกับการเปลี่ยนแปลงที่ใหม่กว่าในมาสเตอร์ฉันขอแนะนำสิ่งต่อไปนี้:
- ยึดทุกสาขาคุณลักษณะใหม่ตามการกระทำของต้นแบบ
- สร้าง
dev
สาขาบนความมุ่งมั่นของอาจารย์
- เมื่อคุณต้องการดูว่าสาขาคุณลักษณะของคุณรวมเข้ากับการเปลี่ยนแปลงใหม่ในต้นแบบอย่างไรให้รวมทั้งหลักและสาขาคุณลักษณะเข้า
dev
ด้วยกัน
อย่าผูกมัดdev
โดยตรงใช้สำหรับการรวมสาขาอื่นเท่านั้น
ตัวอย่างเช่นหากคุณกำลังใช้งานคุณลักษณะ A และ B:
a---b---c---d---e---f---g -master
\ \
\ \-x -featureB
\
\-j---k -featureA
รวมสาขาเข้ากับdev
สาขาเพื่อตรวจสอบว่าทำงานได้ดีกับต้นแบบใหม่หรือไม่:
a---b---c---d---e---f---g -master
\ \ \
\ \ \--x'---k' -dev
\ \ / /
\ \-x---------- / -featureB
\ /
\-j---k--------------- -featureA
คุณสามารถดำเนินการต่อในสาขาคุณลักษณะของคุณและทำการรวมการเปลี่ยนแปลงใหม่ ๆ จากทั้งสาขาหลักและสาขาคุณลักษณะเข้าdev
ด้วยกันเป็นประจำ
a---b---c---d---e---f---g---h---i----- -master
\ \ \ \
\ \ \--x'---k'---i'---l' -dev
\ \ / / /
\ \-x---------- / / -featureB
\ / /
\-j---k-----------------l------ -featureA
เมื่อถึงเวลาที่จะรวมคุณสมบัติใหม่ให้รวมสาขาฟีเจอร์ (ไม่ใช่dev
!) เข้ากับมาสเตอร์