git fetch --all
ผมเคยดึงสาขาระยะไกลผ่านทาง ฉันสามารถดูสาขาที่ฉันต้องการผสานผ่านgit branch -a
เป็นรีโมท / แหล่งกำเนิด / branchname ปัญหาคือมันไม่สามารถเข้าถึงได้ ฉันไม่สามารถรวมหรือชำระเงินได้
git fetch --all
ผมเคยดึงสาขาระยะไกลผ่านทาง ฉันสามารถดูสาขาที่ฉันต้องการผสานผ่านgit branch -a
เป็นรีโมท / แหล่งกำเนิด / branchname ปัญหาคือมันไม่สามารถเข้าถึงได้ ฉันไม่สามารถรวมหรือชำระเงินได้
คำตอบ:
คุณสามารถอ้างอิงสาขาการติดตามระยะไกลเหล่านั้น ~ (แสดงด้วยgit branch -r
) ด้วยชื่อของรีโมต
คุณต้องดึงข้อมูลสาขาระยะไกล:
git fetch origin aRemoteBranch
หากคุณต้องการรวมหนึ่งในสาขาระยะไกลเหล่านั้นในสาขาท้องถิ่นของคุณ:
git checkout master
git merge origin/aRemoteBranch
หมายเหตุ 1:สำหรับ repo ขนาดใหญ่ที่มีประวัติศาสตร์อันยาวนานคุณจะต้องการเพิ่มตัวเลือกเมื่อคุณใช้--depth=1
git fetch
หมายเหตุ 2:คำสั่งเหล่านี้ยังทำงานร่วมกับ repos ระยะไกลอื่น ๆ เพื่อให้คุณสามารถตั้งค่าorigin
และupstream
ถ้าคุณทำงานบนทางแยก
สถานการณ์ตรงข้าม: หากคุณต้องการรวมสาขาในพื้นที่ของคุณในสาขาระยะไกล (ซึ่งแตกต่างจากสาขาระยะไกลเป็นสาขาท้องถิ่นดังที่แสดงด้านบน) คุณจำเป็นต้องสร้างสาขาท้องถิ่นใหม่ที่ด้านบนของสาขาระยะไกลดังกล่าวก่อน:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
แนวคิดที่นี่คือการรวม "หนึ่งในสาขาท้องถิ่นของคุณ" (ที่นี่anotherLocalBranch
) ไปยังสาขาระยะไกล ( origin/aBranch
)
คุณต้องสร้างสิ่งแรก " myBranch
" แทนสาขาย่อยนั่นคือgit checkout -b myBranch origin/aBranch
ส่วนนั้น
และจากนั้นคุณสามารถผสานanotherLocalBranch
กับมัน (เพื่อmyBranch
)
aLocalBranch
" กับ " myBranch
" กับ " myBranch
" origin/aBranch
คิดเป็นสาขาที่ห่างไกล
aLocalBranch
ไม่ใช่การพิมพ์ผิด แต่คุณอนุมัติการแก้ไขล่าสุด (2 ปีต่อมา!) ซึ่งแก้ไข "การพิมพ์ผิดที่เป็นไปได้" นี้ ฉันต้องการตรวจสอบกับคุณก่อนที่จะเลิกทำการแก้ไข
เมื่อใดก็ตามที่ฉันรวมฉันเข้าสาขาที่ฉันต้องการรวมเข้า (เช่น " git checkout branch-i-am-working-in
") แล้วทำสิ่งต่อไปนี้:
git merge origin/branch-i-want-to-merge-from
git fetch origin/branch-i-want-to-merge-from
ก่อนใช่มั้ย
git fetch origin develop
ตามด้วยgit merge origin/develop
git merge
เพียงอย่างเดียวจะไม่ทำ
git add .
-> git commit -m <message>
-> git push -u origin <branch>
?
ดึงสาขาจากระยะไกลมาจากแหล่งแรก
git fetch origin remote_branch_name
รวมสาขาระยะไกลเข้ากับสาขาท้องถิ่น
git merge origin/remote_branch_name
บางทีคุณอาจต้องการติดตามสาขาระยะไกลด้วยสาขาในพื้นที่:
git branch new-local-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
ถ้าคุณเรียกแล้วสาขาที่ห่างไกลของคุณและทำgit branch -a
,
คุณได้รับสิ่งที่ต้องการ:
* 8.0
xxx
remotes/origin/xxx
remotes/origin/8.0
remotes/origin/HEAD -> origin/8.0
remotes/rep_mirror/8.0
หลังจากนั้นคุณสามารถใช้rep_mirror/8.0
เพื่อกำหนดสาขาในพื้นที่ห่างไกลของคุณ
เคล็ดลับคือremotes/rep_mirror/8.0
ไม่ทำงาน แต่rep_mirror/8.0
ทำ
ดังนั้นคำสั่งเช่นเดียวgit merge -m "my msg" rep_mirror/8.0
กับการผสาน
(หมายเหตุ: นี่เป็นความคิดเห็นของ @VonC คำตอบฉันใส่ไว้เป็นคำตอบอื่นเนื่องจากการบล็อกรหัสไม่เหมาะกับรูปแบบความคิดเห็น)