นี่แปลว่าอะไร
ต้นน้ำที่ระยะไกลของคุณที่คุณเรียกorigin
ไม่มีอีกต่อไปได้หรืออาจจะไม่เคยมี (มันเป็นไปไม่ได้ที่จะบอกได้จากข้อมูลนี้เพียงอย่างเดียว) feature/Sprint4/ABC-123-Branch
สาขาที่มีชื่อว่า มีสาเหตุหนึ่งที่พบได้ทั่วไปคือ: บางคน (อาจไม่ใช่คุณหรือคุณจำได้) ลบสาขาในที่เก็บ Git อื่น
สิ่งที่ต้องทำ
นี้ขึ้นอยู่กับสิ่งที่คุณต้องการ ดูหัวข้อสนทนาด้านล่าง คุณสามารถ:
- สร้างหรือสร้างสาขาขึ้นใหม่บนรีโมทหรือ
- ลบสาขาท้องถิ่นของคุณหรือ
- อะไรก็ได้ที่คุณคิด
อภิปรายผล
คุณต้องใช้งานgit pull
(หากคุณใช้งานอยู่git merge
คุณจะได้รับข้อความแสดงข้อผิดพลาดอื่นหรือไม่มีข้อความแสดงข้อผิดพลาดเลย)
เมื่อคุณใช้git fetch
งาน Git ของคุณจะติดต่อ Git อื่นตามurl
บรรทัดใน[remote "origin"]
ส่วนของการกำหนดค่าของคุณ Git นั้นใช้คำสั่ง ( upload-pack
) ซึ่งส่งรายการของ Git ของคุณไปยังสาขาอื่นทั้งหมด คุณสามารถใช้git ls-remote
เพื่อดูว่ามันทำงานอย่างไร (ลองใช้มันเป็นการศึกษา) นี่คือตัวอย่างของสิ่งที่ฉันได้รับเมื่อรันสิ่งนี้บนที่เก็บ Git git
ด้วยตัวเอง:
$ git ls-remote origin
From [url]
bbc61680168542cf6fd3ae637bde395c73b76f0f HEAD
60115f54bda3a127ed3cc8ffc6ab6c771cbceb1b refs/heads/maint
bbc61680168542cf6fd3ae637bde395c73b76f0f refs/heads/master
5ace31314f460db9aef2f1e2e1bd58016b1541f1 refs/heads/next
9e085c5399f8c1883cc8cdf175b107a4959d8fa6 refs/heads/pu
dd9985bd6dca5602cb461c4b4987466fa2f31638 refs/heads/todo
[snip]
refs/heads/
รายการรายการทั้งหมดของสาขาที่มีอยู่ในระยะไกล, 1พร้อมกับที่สอดคล้องกันกระทำรหัส (สำหรับrefs/tags/
รายการรหัสอาจชี้ไปที่แท็กวัตถุมากกว่าการกระทำ)
Git ของคุณใช้ชื่อสาขาเหล่านี้แล้วเปลี่ยนตามfetch
บรรทัดในremote
ส่วนเดียวกัน ในกรณีนี้ Git ของคุณแทนที่refs/heads/master
ด้วยrefs/remotes/origin/master
ตัวอย่างเช่น Git ของคุณทำสิ่งนี้ด้วยชื่อสาขาทุกสาขาที่เจอ
นอกจากนี้ยังบันทึกชื่อดั้งเดิมในไฟล์พิเศษFETCH_HEAD
(คุณสามารถดูไฟล์นี้หากคุณมองเข้าไปใน.git
ไดเรกทอรีของคุณเอง) ไฟล์นี้บันทึกชื่อและรหัสที่ดึงมา
git pull
คำสั่งมีความหมายเป็นความสะดวกสบายตัดสั้น: มันจะทำงานgit fetch
บนรีโมทเหมาะสมแล้วgit merge
(หรือถ้ามีคำสั่งเช่นนั้นgit rebase
) กับสิ่งที่ข้อโต้แย้งที่มีความจำเป็นที่จะผสาน (หรือ rebase) เป็นผู้กำกับโดย[branch ...]
ส่วน ในกรณีนี้คุณ[branch "feature/Sprint4/ABC-123-Branch"]
ส่วนกล่าวว่าสามารถดึงข้อมูลจากorigin
นั้นผสานกับสิ่งที่ ID refs/heads/feature/Sprint4/ABC-123-Branch
ก็พบว่าภายใต้ชื่อ
เนื่องจากไม่มีสิ่งใดพบภายใต้ชื่อนั้นจึงgit pull
บ่นและหยุด
หากคุณใช้ขั้นตอนนี้แยกเป็นสองขั้นตอนgit fetch
จากนั้นgit merge
(หรือgit rebase
) Git ของคุณจะดูที่remotes/origin/
สาขาการติดตามระยะไกลที่แคชไว้เพื่อดูว่าจะรวมหรือรีบูตอย่างไร หากมีเป็นสาขาเช่นที่ครั้งหนึ่งคุณอาจจะยังมีสาขาที่ห่างไกลการติดตาม ในกรณีนี้คุณจะไม่ได้รับข้อความแสดงข้อผิดพลาด ถ้าไม่เคยมีเช่นสาขาหรือถ้าคุณได้ทำงานgit fetch
กับ--prune
(ที่เอาตายสาขาระยะไกลติดตาม) เพื่อให้คุณจะมีความสอดคล้องกันสาขาที่ห่างไกลการติดตามคุณจะได้รับการร้องเรียน แต่มันจะหมายถึงการorigin/feature/Sprint4/ABC-123-Branch
แทน
ในทั้งสองกรณีเราสามารถสรุปได้ว่าไม่ได้อยู่ในขณะนี้ในชื่อระยะไกลfeature/Sprint4/ABC-123-Branch
origin
อาจมีอยู่ครั้งเดียวและคุณอาจสร้างสาขาท้องถิ่นของคุณจากสาขาติดตามระยะไกล ถ้าเป็นเช่นนั้นคุณอาจยังคงมีสาขาการติดตามระยะไกล คุณอาจตรวจสอบเพื่อดูว่าใครลบสาขาออกจากระยะไกลและเพราะเหตุใดหรือคุณอาจผลักบางสิ่งเพื่อสร้างใหม่อีกครั้งหรือลบสาขาการติดตามระยะไกลและ / หรือสาขาในพื้นที่ของคุณ
1อย่างน้อยก็ต้องยอมรับทุกอย่าง แต่หากพวกเขาซ่อนการอ้างอิงบางรายการไว้