จะซิงค์กับที่เก็บ Git ระยะไกลได้อย่างไร


94

ฉันแยกโครงการบน github ทำการเปลี่ยนแปลงบางอย่างจนถึงตอนนี้ดีมาก

ในระหว่างนี้ที่เก็บที่ฉันแยกจากการเปลี่ยนแปลงและฉันต้องการรับการเปลี่ยนแปลงเหล่านั้นไปยังที่เก็บของฉัน ฉันจะทำอย่างไร?

คำตอบ:


78

โดยทั่วไปgit pullก็เพียงพอแล้ว แต่ฉันไม่แน่ใจว่าคุณได้เลือกเลย์เอาต์แบบใด (หรือเลือก github ให้คุณ)


4
git pull จะไม่ทำงานเว้นแต่คุณจะกำหนดค่ารีโมตเพื่อดึงข้อมูลจากและสาขาที่จะรวมเข้าด้วย
Abizern

ฉันสมมติว่าเสร็จสิ้นในช่วง "การทำส้อม" หากข้อมูลนี้ไม่ถูกโยนทิ้งไปก็ยังควรมีอยู่
ŠimonTóth

การใช้ git pull กับ https ไม่ได้ผล แต่ด้วย http มันทำได้ ... ตอนนี้ฉันได้รับข้อมูลล่าสุดแล้วขอบคุณ!
George Profenza

@GeorgeProfenza นั่นไม่ปลอดภัย ลองใช้ssh
JVE999

66

สมมติว่าการอัปเดตเป็นไปตามหลักและคุณอยู่ในสาขาที่คุณต้องการรวมการเปลี่ยนแปลงเข้าด้วยกัน

git remote add origin https://github.com/<github-username>/<repo-name>.git
git pull origin master

นอกจากนี้โปรดทราบว่าคุณจะต้องส่งการผสานกลับไปที่สำเนาของที่เก็บ:

git push origin master

การเพิ่มใช้งานได้การดึงไม่ได้ :( ฉันได้รับข้อผิดพลาดเกี่ยวกับ https: ข้อผิดพลาด: โปรโตคอล https ไม่รองรับหรือปิดใช้งานใน libcurl ขณะเข้าถึงgithub.com/mrdoob/three.js.git/info/refs ร้ายแรง: คำขอ HTTP ล้มเหลว คำแนะนำ?
George Profenza

แพลตฟอร์มอะไร ดูเหมือนการอ้างอิงของคอมไพล์อย่างใดอย่างหนึ่งจะไม่สมบูรณ์
Mark Hibberd

คุณยังสามารถใช้ git protocol แทน https เช่น git remote set-url git: //github.com/mrdoob/three.js.git จากนั้นลองใช้ git pull
Mark Hibberd

ทำงานบน osx ฉันจัดการเพื่อให้ได้โดยใช้ git pull github.com/mrdoob/three.js.git master
George Profenza

3
ฉันคิดว่าคุณพิมพ์ผิดในคำสั่งคุณเริ่มต้นด้วยoriginalจากนั้นเปลี่ยนเป็นorigin
Benjol


5

คุณต้องเพิ่มที่เก็บเดิม (ที่คุณแยก) เป็นรีโมต

git remote add github (โคลน url สำหรับที่เก็บ orignal)

จากนั้นคุณต้องนำการเปลี่ยนแปลงไปยังที่เก็บในเครื่องของคุณ

git ดึง github

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


1
ฉันขอแนะนำชื่อupstreamสำหรับรีโมท
vidstige

@vidstige ซึ่งไม่สามารถอธิบายได้เพียงพอหากคุณมีรีโมทหลายตัวสำหรับที่เก็บ ตัวอย่างเช่นฉันมักมีรีโมตบน Github และรีโมตบน Dropbox
Abizern

ดีแล้วแน่นอนว่ามันสมเหตุสมผล นั่นเป็นเหตุผลที่ดีมากที่มีความสามารถในการตั้งชื่อตัวเอง ตระหนักดีว่าการตั้งค่าของคุณอาจเป็นเรื่องปกติน้อยกว่าการมีรีโมตที่เรียกว่าจุดเริ่มต้นซึ่งเป็นทางแยกของคุณเองจากนั้นคุณจะมีต้นฉบับซึ่งมักจะตั้งชื่อว่า "ต้นน้ำ"
vidstige

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