git branch -d ให้คำเตือน


95

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

คำเตือน: การลบสาขา'old_branch'ที่ได้รับรวม แต่ยังไม่ได้รวม'refs/remotes/origin/old_branch'HEAD


31
หากคุณรวม - สควอช old_branch ของคุณคุณจะได้รับคำเตือนนี้เสมอเมื่อลบในเครื่อง เมื่อการบีบดัชนีของคุณถูกรีเซ็ตจึงไม่ตรงกับ old_branch HEAd
Antoine Wils

แม้ว่าคำตอบอื่น ๆ จะถูกต้อง แต่ความคิดเห็นของ Antoine ก็เป็นเหตุผลอย่างน้อยก็ในกรณีของฉัน
Squrppi

คำตอบ:


67

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

เป็นการเตือนว่าคุณไม่มีสำเนาของสาขานั้นอีกต่อไป แต่มีอยู่ใน origin

หากคุณต้องการลบสาขาระยะไกลด้วยให้ใช้ git push --delete origin old_branch


9
ใช่masterไม่มีส่วนเกี่ยวข้องกับเรื่องนี้ คุณหมายถึงสาขาปัจจุบันมากกว่า ;)
Fernando Espinosa

1
ฉันได้รับคำเตือนนี้แม้ว่าฉันจะทำสิ่งgit branch -d branch_nameที่ควรจะลบสาขาในเครื่องเท่านั้น เหตุใดจึงจำเป็นต้องมีคำเตือนในกรณีนี้
Akshay Damle

2
แต่ origin / old_branch รวมเข้ากับ origin / master ต่อมาฉันได้ทำการดึงคอมไพล์ในสาขาหลัก ยังคงมีข้อผิดพลาดเดียวกัน ข้อผิดพลาดนี้ไม่ได้อยู่ใน GH?
vikramvi

38

สมมติว่าคุณกำลังมีmasterการตรวจสอบออกก็หมายความว่าการเปลี่ยนแปลงที่เกิดขึ้นในไม่ได้อยู่ในปัจจุบันold_branch masterแต่พวกเขามีอยู่ในบนold_branchorigin


4
ใช่. นี่คือคำตอบที่ถูกต้อง! "แต่ยังไม่รวมเข้ากับHEAD" ในHEADที่นี้จะอ้างอิง HEAD ของสาขาหลักในพื้นที่
Devy

3
แต่ origin / old_branch รวมเข้ากับ origin / master ต่อมาฉันได้ทำการดึงคอมไพล์ในสาขาหลัก ยังคงมีข้อผิดพลาดเดียวกัน ข้อผิดพลาดนี้ไม่ได้อยู่ใน GH?
vikramvi

1
@vikramvi สมมติว่าคุณmasterเช็คเอาต์ในพื้นที่แล้วอาจยังคงเกิดขึ้นได้หาก SHA ของการกระทำใด ๆ มีการเปลี่ยนแปลง เช่นคุณ rebased บนorigin/old_branch origin/masterแม้ว่าจะเป็นการกรอไปข้างหน้า แต่จะสร้าง SHA ใหม่สำหรับแต่ละคอมมิตใหม่จากorigin/old_branchทำให้คอมไพล์เห็น SHA ดั้งเดิมในโลคัลของคุณold_branchเป็นแบบไม่ผสานหลังจากดึงการเปลี่ยนแปลงไปยังmasterสาขาในพื้นที่ของคุณ คุณสามารถดูคำตอบนี้และคำตอบนี้ว่าเหตุใดจึงเกิดขึ้น

8

ซึ่งหมายความว่าสาขาในพื้นที่ของคุณold_branchเป็นข้อมูลล่าสุดกับสาขาold_branchระยะไกลบนระยะไกลoriginแต่ไม่ได้รวมเข้ากับสาขาmasterที่ถือเป็นสาขาหลักใน repo

เป็นเพียงข้อควรระวังจากการคอมไพล์ ให้คำใบ้: บางทีคุณอาจทำงานในหัวข้อ - สาขาและลืมที่จะรวมเข้ากับสาขาหลัก?


อัพเดต

Git เตือนคุณไม่ให้สูญเสียการเปลี่ยนแปลง ตัวอย่างเช่นถ้าคุณไม่มีของคุณold_branchในคอมไพล์หลักก็ไม่อนุญาตให้คุณแม้แต่ลบสาขาที่ไม่ได้ผสานกับต้นแบบ (ก็อนุญาต แต่มีคีย์-Dซึ่งเป็นforce-deleteตัวเลือก)


7
ไม่จำเป็นต้องแต่ในปัจจุบันmaster HEAD
Frozen Flame

ดังนั้น -D คือเมื่อคุณไม่ได้แชร์สาขาที่ถูกลบ (จริงๆแล้วเป็นการกระทำ) กับสาขาระยะไกลใด ๆ แม้ว่าคำเตือนจะแจ้งให้คุณทราบว่าคุณได้แชร์สาขา (คอมมิต) กับรีโมต แต่ไม่รวมเข้ากับ HEAD HEAD คือ HEAD รีโมต / refs / HEAD ไม่เหมือนกัน แต่โปรดแก้ไขฉันหากฉันผิดเกี่ยวกับความแตกต่างระหว่าง Remote HEAD และ Local HEAD
Eric

7

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

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