อัปเดตรีโมตของสาขา git หลังจากเปลี่ยนชื่อ


3

พิจารณาสถานการณ์ต่อไปนี้ พื้นที่เก็บข้อมูลระยะไกลมีสองสาขาและmaster b1นอกจากนี้มันมีสองโคลนrepo1และrepo2และทั้งสองได้b1ออกตรวจสอบ ณ จุดหนึ่งในrepo1ชื่อของb1มีการเปลี่ยนแปลง เท่าที่ฉันสามารถบอกได้ต่อไปนี้เป็นขั้นตอนที่เหมาะสมในการเปลี่ยนชื่อb1:

$ git branch b1 b2 # changes the name of b1 to b2
$ git push remote :b1 # delete b1 remotely
$ git push --set-upstream origin b2 # create b2 remotely and direct the local branch to track the remote 1

ตอนนี้หลังจากนั้นrepo2ฉันก็ประสบปัญหา git pullไม่ดึงการเปลี่ยนแปลงจากสาขา (ซึ่งปัจจุบันเรียกว่าระยะไกลb2) ข้อผิดพลาดที่ส่งคืนคือ:

Your configuration specifies to merge with the ref 'b1'
from the remote, but no such ref was fetched.

วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร? ทั้งส่วนการเปลี่ยนชื่อและการปรับปรุงในโคลนอื่น ๆ ?


ดูเหมือนว่าคุณจะทำการเปลี่ยนชื่อชิ้นส่วนได้อย่างถูกต้อง แต่ไม่มีวิธีการบังคับให้เปลี่ยนชื่อสาขาใน repos AFAIK อื่น ๆ อย่างไรก็ตามในrepo2คุณสามารถทำได้git pull; git checkout b2เพื่อสลับไปยังสาขาใหม่
wingedsubmariner

ดังนั้นคุณบอกว่าในrepo2ฉันควรด้วยตนเอง (และในประเทศ) ลบb1และเช็คเอาต์b2หลังจากgit fetch?
Dror

1
ใช่ฉันคิดว่านั่นเป็นสิ่งที่คุณต้องทำ
wingedsubmariner

คำตอบ:


0

นอกจากนี้คุณยังสามารถเปลี่ยนสาขาอัปสตรีมรีโมตที่สาขาปัจจุบันของคุณได้รับการกำหนดค่าให้ดึงจาก: https://stackoverflow.com/a/4879224/637283

ซึ่งอาจทำให้เกิดปัญหา แต่เข้าใจโพสต์นั้นก่อนที่จะทำ


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