หากต้องการรวมสาขาปัจจุบันเข้ากับสาขาอื่นโดยไม่ต้องเช็คสาขาอื่น:
ผสานการกรอไปข้างหน้า
มันง่ายมาก ตามคำนิยามการผสานการกรอไปข้างหน้านั้นหมายถึงการย้ายตัวชี้สาขาไปข้างหน้าในแผนผังการส่ง ดังนั้นสิ่งที่คุณต้องทำคือเพียงแค่จำลองว่า:
git branch -f master dev
Caveats:สิ่งนี้จะถือว่าmaster
การกระทำที่อยู่ในdev
สาขาหรือสาขาอื่น ๆ หากไม่เป็นเช่นนั้นคุณอาจสูญเสียงาน! ซึ่งแตกต่างจากgit merge
ที่จะสร้างผสานกระทำ (หรือบ่น) เมื่อไม่สามารถไปข้างหน้าอย่างรวดเร็ววิธีนี้จะบังคับให้ตัวชี้สาขาชี้ไปที่การกระทำอื่นอย่างเงียบ ๆ
สิ่งนี้ยังถือว่าคุณเป็นคนเดียวที่ทำงานกับ repo และ / หรือคุณรู้ว่าคุณกำลังทำอะไรอยู่
เคล็ดลับ:หากคุณทำgit fetch
และคุณมีข้อผูกพันใหม่origin/master
คุณสามารถย้ายmaster
สาขาได้โดยไม่ต้องใช้:
git branch -f master origin/master
ผสานผ่านการผสานกระทำ
มันเป็นไปไม่ได้เสมอไป ในการสร้างการรวมคำสั่งคุณต้องทำการดำเนินการผสาน และในการดำเนินการผสานคุณควรมีข้อผูกมัดในสาขาอื่นที่ไม่ได้อยู่ในสาขาปัจจุบัน
หากคุณมีข้อผูกพันในmaster
สาขาที่ไม่ได้อยู่ในdev
สาขาคุณสามารถ:
ข้อจำกัดความรับผิดชอบ:นี่เป็นเพียงหลักฐานพิสูจน์เพื่อแสดงให้เห็นว่าบางครั้งก็เป็นไปได้ที่จะรวมกับสาขาอื่นโดยไม่ต้องเช็คเอาท์ หากคุณต้องการใช้ทุกวันคุณอาจต้องการใช้นามแฝงแทนโดยใช้การเปลี่ยนเส้นทางของเชลล์หรือสร้างเชลล์สคริปต์ จากนั้นอีกครั้งคุณยังสามารถสร้างเชลล์สคริปต์สำหรับกระบวนการที่สั้นกว่าที่แสดงในคำถาม
git checkout -b temp
git merge --no-ff -e master
git branch -f master temp
git checkout dev
git branch -D temp
คำอธิบาย:
- ตรวจสอบสาขาชั่วคราวที่ชี้ไปที่การกระทำเดียวกันกับสาขาปัจจุบัน
รวมmaster
เข้ากับสาขาชั่วคราวและเปิดใช้ตัวแก้ไขข้อความ หากคุณต้องการให้การผสานดูเหมือนว่าคุณได้รวมdev
สาขาเข้าไว้master
ให้แก้ไขจากสิ่งนี้:
Merge branch 'master' into temp
สำหรับสิ่งนี้:
Merge branch 'dev'
เคล็ดลับ:คุณสามารถใช้-m "Merge branch 'dev'"
แทนที่จะ-e
เป็นเร็วกว่าได้
- อัปเดต
master
ตัวชี้สาขาเพื่อชี้ไปที่การผสาน
- ตรวจสอบ
dev
สาขา
- บังคับลบสาขาชั่วคราว
สิ่งนี้ยังคงสัมผัสแผนผังการทำงานของคุณ มันไม่ได้ย้อนต้นไม้กลับไปสู่สภาพดั้งเดิมmaster
เพื่อนำการเปลี่ยนแปลงมาพัฒนาอีกครั้ง บางคนอาจไม่สนใจ แต่สำหรับคนอื่นมันอาจสำคัญ