Git รวมสองสาขาในพื้นที่


146

ฉันมีสาขาหลัก, สาขา A และสาขา B. ตอนนี้ฉันทำงานในสาขา A และฉันต้องรวมสาขา A กับสาขา B และทำงานของฉันในสาขา A ไฟล์ทั้งหมดจะถูกวางในสาขา A และ B

วิธีที่รวดเร็วในการใช้งานคืออะไร

คำตอบ:


247

หากฉันเข้าใจคำถามของคุณคุณต้องการรวมbranchBเข้าbranchAด้วยกัน โดยการชำระเงินครั้งแรกbranchAเช่นด้านล่าง

git checkout branchA

จากนั้นดำเนินการคำสั่งด้านล่างเพื่อผสานbranchBเข้ากับbranchA:

git merge branchB

3
เราต้องตรวจสอบให้แน่ใจว่าสาขา A และ B มีอยู่ในที่เก็บข้อมูลในเครื่อง เท่านั้นจากนั้นเราสามารถทำการผสาน
Santhosh

8
คำถามชัดเจน:I have branch Master, branch A and branch B.
LeeGee

166

นี่เป็นภาพที่ชัดเจน:

สมมติว่าเรามี branch-A และ branch-B

เราต้องการรวมสาขา -B เข้ากับสาขา -A

on branch-B -> A: switch to branch-A

on branch-A: git merge branch-B

32
สิ่งนี้ไม่ชัดเจนเลยเพียงโพสต์อินพุตเทอร์มินัลมันเข้าใจง่ายกว่ามาก
lopu

9
คำตอบนี้ไม่ชัดเจนเพียงพอ .... มันหมายความว่าอย่างไร "update the Branch-B" ... มีหลายวิธีในการทำเช่นนั้นอันไหน ... แทนที่จะเปลี่ยนสาขาการชำระเงินของคอมไพล์ A สามารถเข้าใจได้ง่ายขึ้น
ErdinçÇorbacı

2

คำตอบจาก Abiraman นั้นถูกต้องอย่างแน่นอน อย่างไรก็ตามสำหรับมือใหม่ที่จะคอมไพล์พวกเขาอาจลืมที่จะดึงพื้นที่เก็บข้อมูล เมื่อใดก็ตามที่คุณต้องการผสานจาก branchB ไปยัง branchA ทำการชำระเงินครั้งแรกและดึงจาก BranchB (ตรวจสอบให้แน่ใจว่าสาขาของคุณได้รับการปรับปรุงด้วยสาขาระยะไกล)

git checkout branchB
git pull

ตอนนี้สาขาในท้องถิ่นของคุณได้รับการอัพเดตด้วย remote branch แล้วคุณสามารถชำระเงินกับ branchA ได้

git checkout branchA

ตอนนี้คุณอยู่ใน branchA แล้วคุณสามารถผสานกับ branchB โดยใช้คำสั่งต่อไปนี้

git merge branchB

0

หากคุณหรือผู้พัฒนารายอื่นจะไม่ทำงานในสาขา B ต่อไปฉันคิดว่าเป็นการดีกว่าที่จะผูกมัดไว้เพื่อแปลงกลับโดยไม่ต้องปวดหัว ดังนั้น;

git checkout branchA
git pull --rebase branchB

สิ่งสำคัญคือไม่ควรใช้ branchB อีกต่อไป

สำหรับข้อมูลเพิ่มเติม; https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/


1
ในชื่อเรื่องคำถามเกี่ยวข้องกับที่เก็บข้อมูลในเครื่อง - ซึ่งpullจะไม่ทำงาน
LeeGee

2
คุณคิดถูกฉันแค่คิดว่าการเพิ่มความรู้นี้จะเป็นข้อดีเพราะอาจจะผลักสาขาท้องถิ่นในตอนท้าย แต่ฉันพลาดจุดที่คุณระบุฉันควรที่จะเพิ่มสิ่งนี้เป็นความคิดเห็นที่ไม่ใช่คำตอบ ขอบคุณที่เตือนฉัน
ErdinçÇorbacı

0

บน branchB ทำ$git checkout branchAเพื่อสลับไปยังสาขา A

ในสาขาทำ $git merge branchB

นั่นคือทั้งหมดที่คุณต้องการ

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