วิธีเปลี่ยนสาขาของมาสเตอร์เป็นอัปสตรีม


145

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

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

คำตอบ:


277

(ฉันสมมติว่าการเปลี่ยนแปลงที่คุณต้องการเพิกเฉยนั้นอยู่ที่originระยะไกลคุณอยู่ในmasterสาขาของคุณและคุณต้องการเปลี่ยนกลับเป็นเนื้อหาของupstreamรีโมต)

ขั้นแรกให้รีเซ็ตสำเนาการทำงานของคุณเป็นต้นแบบต้นน้ำ:

git remote update
# the double hyphen ensures that upstream/master is
# considered as a revision and not confused as a path
git reset --hard upstream/master --

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

git push origin +master

14
อาจจำเป็นต้องเรียกใช้git remote add upstream <upstream_repo_url>หากคุณแยกสาขาด้วย GitHub
Kato

3
ความหมายของสิ่ง+ในgit push origin +masterคืออะไร? มันเหมือนกันgit push origin masterหรือเปล่า
bluenote10 10

4
@ bluenote10 ไม่เหมือนกัน นี่+คือสิ่งที่บอกคอมไพล์ให้กับ "[เพิกเฉย] ความจริงที่ว่ามันจะไม่เป็นไปข้างหน้าอย่างรวดเร็ว" มันค่อนข้างเหมือนกับการทำgit push --forceแต่มันใช้ได้กับการอ้างอิงเฉพาะนั้นเท่านั้น
nickgrim

1
ไม่ได้ผลสำหรับฉัน ฉันทำสถานะคอมไพล์แล้วหลังจากมีรายการที่ได้รับการแก้ไข ฉันจะต้องเช็ดและเริ่มต้นใหม่ Git ยากต่อการเข้าใจ
มิทช์

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