git - ดึงจากสาขาเฉพาะ


202

ฉันโคลนที่เก็บ git ไปยังเซิร์ฟเวอร์ dev ของฉันแล้วเปลี่ยนเป็นสาขา dev แต่ตอนนี้ฉันไม่สามารถดึง git เพื่ออัปเดตสาขาได้

ฉันจะอัปเดตรหัสบนเซิร์ฟเวอร์ได้อย่างไร

คำตอบ:


261

ดูหน้าคน git-pull :

git pull [options] [<repository> [<refspec>...]]

และในส่วนตัวอย่าง:

ผสานสาขาปัจจุบันสาขาระยะไกลถัดไป:

$ git pull origin next

ดังนั้นฉันคิดว่าคุณต้องการทำสิ่งที่ชอบ:

git pull origin dev

หากต้องการตั้งค่าเพื่อให้สามารถทำได้ตามค่าเริ่มต้นขณะที่คุณอยู่ในสาขา dev:

git branch --set-upstream-to dev origin/dev

6
" --set-upstreamflag เลิกใช้แล้วและจะถูกลบออกลองใช้--trackหรือ--set-upstream-to Branch devตั้งค่าเพื่อติดตาม dev สาขาระยะไกลจากจุดเริ่มต้น" เช่น. git branch --set-upstream-to origin/dev
Nagendra Rao

แก้ไขสิ่งนี้เพื่อสะท้อนการคัดค้าน --set-upstream หรือไม่
Scott Skiles

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

42

นี่คือสิ่งที่คุณต้องทำ ก่อนอื่นให้แน่ใจว่าคุณอยู่ในสาขาที่คุณไม่ต้องการดึง ตัวอย่างเช่นถ้าคุณมีต้นแบบและพัฒนาสาขาและคุณพยายามดึงสาขาพัฒนาแล้วอยู่ในสาขาหลัก

git checkout master

จากนั้น

git pull origin develop

7
นี่คือความสับสน หากฉันต้องการดึงสาขา "dev" ระยะไกลลงในสาขา "dev" ในพื้นที่ฉันคิดว่าคุณต้องอยู่ในสาขา "dev" ในพื้นที่ไม่ใช่สาขาอื่น
โรมัน

2
สิ่งนี้ไม่สามารถดึงข้อมูลสาขาการพัฒนาระยะไกลแล้วรวมกับเจ้านายในพื้นที่ของคุณได้หรือไม่
แบรดพี

2
ฉันไม่ได้git checkout developและgit pull origin developและทำงานได้ดี คุณจะต้องชำระเงินที่สาขาอื่นถ้าคุณต้องการที่จะลบสาขาท้องถิ่นหรือระยะไกล ( git branch -d developหรือgit push origin --delete develop)
ChesuCR

1
สับสนมาก ฉันเพิ่งรวมสาขาที่ฉันต้องการทดสอบเป็นผู้เชี่ยวชาญในพื้นที่ :)
Fabian Bosler

ตามที่ @roman บอกว่าจำเป็นต้องอยู่ในสาขาท้องถิ่น
woter324

15

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


7

ตัวอย่างเอกสาร Laravel:

git pull https://github.com/laravel/docs.git 5.8

ขึ้นอยู่กับรูปแบบคำสั่ง:

git pull origin <branch>

👍


5

นี่คือขั้นตอนในการดึงเฉพาะหรือสาขาใด ๆ

1. ปิดต้นแบบ (คุณต้องระบุชื่อผู้ใช้และรหัสผ่าน)

       git clone <url>

2. คำสั่งด้านบนจะโคลนที่เก็บข้อมูลและคุณจะเป็นสาขาหลักในขณะนี้

       git checkout <branch which is present in the remote repository(origin)>

3. คำสั่งด้านบนจะชำระเงินไปยังสาขาที่คุณต้องการดึงและจะตั้งค่าให้ติดตามสาขานั้นโดยอัตโนมัติ

4. ถ้าด้วยเหตุผลบางอย่างมันไม่ทำงานอย่างนั้นหลังจากเช็คเอาท์ที่สาขาในระบบโลคอลของคุณให้รันคำสั่งด้านล่าง

       git pull origin <branch>

1

คุณสามารถใช้ update / pull บน git branch คุณสามารถใช้คำสั่งด้านล่าง

git pull origin <branch-name>

คำสั่งดังกล่าวจะใช้การปรับปรุง / ดึงจากการให้ชื่อสาขา

หากคุณต้องการถอนจากสาขาอื่นคุณต้องไปที่สาขานั้น

git checkout master

กว่า

git pull origin development

หวังว่าจะได้ผลสำหรับคุณ


1

หากคุณต้องการดึงจากสาขาเฉพาะสิ่งที่คุณต้องทำคือ

git pull 'remote_name' 'branch_name'

หมายเหตุ: ให้แน่ใจว่าคุณยอมรับรหัสของคุณก่อน


0

git-pull - ดึงข้อมูลจากและรวมเข้ากับที่เก็บอื่นหรือสาขาท้องถิ่น

git pull [options] [<repository> [<refspec>...]]

คุณสามารถอ้างอิง git doc อย่างเป็นทางการhttps://git-scm.com/docs/git-pull

เช่น

git pull origin dev


คำตอบของคุณแตกต่างจากคำตอบที่โพสต์ไปแล้วอย่างไร
j08691

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