พิจารณาสถานการณ์ต่อไปนี้ พื้นที่เก็บข้อมูลระยะไกลมีสองสาขาและ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.
วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร? ทั้งส่วนการเปลี่ยนชื่อและการปรับปรุงในโคลนอื่น ๆ ?
ดังนั้นคุณบอกว่าใน
—
Dror
repo2
ฉันควรด้วยตนเอง (และในประเทศ) ลบb1
และเช็คเอาต์b2
หลังจากgit fetch
?
ใช่ฉันคิดว่านั่นเป็นสิ่งที่คุณต้องทำ
—
wingedsubmariner
repo2
คุณสามารถทำได้git pull; git checkout b2
เพื่อสลับไปยังสาขาใหม่