ผสานสาขาท้องถิ่นหนึ่งสาขาเข้ากับสาขาท้องถิ่นอื่น


167

ฉันมีหลายสาขาที่แยกออกจากต้นแบบ (แต่ละอันในไดเรกทอรีย่อยแยกต่างหาก)

  • สาขา 1: การพัฒนาใหม่ยังไม่เสร็จสมบูรณ์
  • Branch2: โปรแกรมแก้ไขด่วนสำหรับปัญหา แต่ยังอยู่ภายใต้การทดสอบ
  • สาขาที่ 3: ยุ่งไปกับสาขาซึ่งฉันจะไม่กู้คืน

ก่อนที่การทดสอบของโปรแกรมแก้ไขด่วนจะเสร็จสิ้นฉันต้องการรหัสที่มีอยู่แล้วใน Branch1 เพื่อให้ฉันสามารถพัฒนาต่อไปได้ด้วยการแก้ไข
(แต่เนื่องจากประสบการณ์ของฉันเกี่ยวกับคอมไพล์ไม่มากฉันเริ่มเล่นรอบกับผสานในสาขาที่ 3 โดยเฉพาะอย่างยิ่งสร้างขึ้นเพื่อยุ่งรอบก่อนที่ฉันจะยุ่งทั้ง Branch1 หรือ Branch2)

ในสาขาที่ 3 ของฉันฉันลองต่อไปนี้เป็นครั้งแรก:

git merge feature/Branch1

แต่สิ่งนี้ทำให้เกิดข้อผิดพลาดดังต่อไปนี้:

fatal: 'feature/Branch1' does not point to a commit

ต่อไปฉันได้กระทำ -a ใน Branch1 ของฉันและลองอีกครั้ง แต่มันก็ให้ข้อผิดพลาดเดียวกัน

ผมทำอะไรผิดหรือเปล่า? ฉันควรทำอย่างไรเพื่อรวมรหัสจาก - ในกรณีนี้ - Branch1 กับ Branch3

คำตอบ:


236

ก่อนชำระเงินไปที่ Branch3 ของคุณ:

git checkout Branch3

จากนั้นรวมสาขา 1:

git merge Branch1

และถ้าคุณต้องการคอมมิชชันที่ถูกอัพเดตของ Branch1 ใน Branch2 คุณก็กำลังมองหา git rebase

git checkout Branch2
git rebase Branch1

สิ่งนี้จะอัปเดต Branch2 ของคุณด้วยการอัปเดตล่าสุดของ Branch1


1
(ฉันต้องการการอัปเดตของ Branch2 เป็น Branch1 ;-)) Branch2 ไม่เห็น Branch1 แต่ไม่ใช่วิธีอื่น ๆ เมื่อฉันทำ git branch - ทั้งสองสาขา ดังนั้นฉันไม่สามารถทำการ rebase ไปที่ Branch2 ใน Branch1: git rebase Branch2 -> ถึงแก่ชีวิต: ต้องการการแก้ไขครั้งเดียว
Nemelis

เมื่อฉันทำ rebase เป็น git rebase กำเนิด / Branch2 ก็ยังให้ข้อความแสดงข้อผิดพลาดที่ + ต้นกำเนิดต้นน้ำที่ไม่ถูกต้อง / Branch2
Nemelis

1
@ Si8 จะเพิ่มเฉพาะการคอมมิชชันจาก Branch1 ไปยัง Branch3 Branch1 จะถูกเก็บไว้ตามที่เป็นอยู่
gabra

1
ขอบคุณดังนั้นหากฉันอยู่ในสาขา Dev และฉันรวม Dev1 เข้าด้วยกันจะรวม Dev1 กับ Dev ฉันถูกต้องหรือไม่
Si8

1
ใช่. ฉันขอแนะนำให้ลอง หากมีบางอย่างผิดพลาดคุณสามารถย้อนกลับไปได้ นั่นคือจุดประสงค์ของ VCS
gabra
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.