ดึงสาขาระยะไกลมาเป็น repo ในพื้นที่ด้วยชื่ออื่นหรือไม่?


112

เอาล่ะฉันหาข้อมูลเล็กน้อยเกี่ยวกับเรื่องนี้ แต่ไม่พบคำตอบที่แน่นอนฉันจึงต้องถาม

ฉันมีรีโมท 2 ตัว: origin และ repo2

ฉันต้องการทำสิ่งที่ชอบ

git pull repo2 master

แต่นี่จะดึงสาขาหลักของ repo2 มาเป็นนายของฉัน ฉันสามารถระบุสาขาอื่นที่จะดึงเข้ามาสำหรับสาขาในพื้นที่ของฉันได้หรือไม่

คำตอบ:


163
git checkout -b myBranchName repo2/master

20
หมายเหตุ - คุณต้องดำเนินการ git fetch remote2ก่อนหากยังไม่เสร็จสิ้น มิฉะนั้นคุณอาจเห็น> ถึงแก่ชีวิต: ไม่สามารถอัปเดตเส้นทางและเปลี่ยนเป็นสาขา 'myBranchName' ในเวลาเดียวกัน
dman

หมายเหตุ - ถ้าคุณต้องการที่จะผลักกลับให้ใช้git push repo2 myBranchName:masterอย่างง่ายgit pushจะล้มเหลว
jaimedash

2
ถ้ามีสาขาอยู่แล้วจะเป็นอย่างไร? ฉันต้องการอัปเดตโค้ดที่นั่นด้วยรหัสจาก repo
Jared

@ Jared เป็นคำถามที่แตกต่างกันในทางเทคนิค แต่ก็เป็นไปได้อย่างง่ายดาย (และนั่นเป็นหนึ่งในกรณีการใช้งานที่พบบ่อยที่สุด) ขึ้นอยู่กับสิ่งที่คุณทำไปแล้วเล็กน้อย ในกรณีส่วนใหญ่เป็นเพียงgit checkout my_branch && git pull --rebase( --rebaseขึ้นอยู่กับขั้นตอนการทำงานของคุณ) หากสาขายังไม่ได้ติดตามรีโมตคุณต้องดำเนินการgit branch --set-upstream my_branch upstream/my_branchหนึ่งครั้ง
KingCrunch

4

git pullคำสั่งเป็นฟังก์ชั่นอำนวยความสะดวกที่ไม่และgit fetch git mergeหากคุณต้องการดึงสาขาจากรีโมตใหม่โดยไม่พยายามรวมเข้ากับสาขาการคัดลอกที่ใช้งานได้ใด ๆ ที่คุณสามารถgit fetchใช้ได้ จากนั้นคุณสามารถอ้างถึงgit branch -avเพื่อดูสาขาในพื้นที่และระยะไกลทั้งหมดและดำเนินการบนรีโมตได้ตามที่คุณต้องการ

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