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=1git 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-branchgit branch --set-upstream-to=origin/remote-branch new-local-branchgit checkout new-local-branchgit 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 คำตอบฉันใส่ไว้เป็นคำตอบอื่นเนื่องจากการบล็อกรหัสไม่เหมาะกับรูปแบบความคิดเห็น)