วิธีการลบการอ้างอิง git `refs / original / refs / heads / master`?


35

นี่คืออะไรในกล่องกลมสีเหลือง?

ภาพหน้าจอ

ฉันพยายามgit branch -Dแล้วgit tag -dแต่ก็ไม่ประสบความสำเร็จ ดังนั้นจะลบได้อย่างไร


1
โปรดพิจารณาการเปลี่ยนคำตอบที่ยอมรับเป็นคำตอบของAlexey Tenซึ่งได้รับการโหวตสูงและถูกต้อง ( git update-ref -d)
Jonathon Reinhart

คำตอบ:


11

ดูเหมือนแท็กดังนั้นคำสั่งต่อไปนี้ควรใช้งานได้:

git tag -d refs/original/refs/heads/master

แต่เนื่องจากคุณบอกว่าไม่เป็นเช่นนั้นคุณสามารถลบไฟล์ออกจาก.gitไดเรกทอรีได้ จาก root ของที่เก็บคำสั่งเช่นนี้จะได้รับ:

rm .git/refs/tags/refs/original/refs/heads/master

เส้นทางอาจแตกต่างกันเล็กน้อยหากgit-tagคำสั่งล้มเหลวดังนั้นคุณอาจต้องการcd .git/refsและค้นหาส่วนหัวที่ผิดโดยการลองผิดลองถูก การลบไฟล์จะเป็นการลบการอ้างอิงจากที่เก็บในเครื่องของคุณ


2
มันไม่ได้แท็ก .git/refs/original/refs/heads/masterแต่ผมพบว่ามันเป็น
XièJìléi

1
ใช้git update-refแทนที่จะกลายพันธุ์ภายใน Git ด้วยตนเอง ดูคำตอบของ Alexey
wchargin

100

คำสั่งนี้ควรใช้งานได้

git update-ref -d refs/original/refs/heads/master

สิ่งนี้ใช้ได้สำหรับฉันด้วยปัญหาเดียวกัน โปรดทราบว่าการอ้างอิงถูกเก็บไว้ในไฟล์ชื่อ. git / packing-refs หากคุณเปิดขึ้นคุณจะเห็นบรรทัดที่มี SHA และสตริง "refs / original / refs / heads / master" คุณอาจจะลบบรรทัดนั้น แต่ฉันจะใช้คำสั่งนี้เพื่อความปลอดภัย
แมตต์ N

14
1: คุณควรเสมอใช้git update-ref -dแทนเพียงrmไอเอ็นจีเตะ - สิ่งที่ไม่ดีสามารถเกิดขึ้นได้เป็นอย่างอื่น
Callum Rogers

3
นี่ควรเป็นคำตอบที่ยอมรับ
Daniel Alder

1
@ CallumRogers ทำไม?
wahnfrieden

6
@wahnfrieden เพราะคอมไพล์สามารถใช้ refs บรรจุและจะไม่มีไฟล์ที่สอดคล้องกันในrefsไดเรกทอรี
Alexey สิบ

17

นี่คือการอ้างอิง สร้างขึ้นตามปกติโดยgit filter-branch- git filter-branchมันเป็นตัวชี้ไปที่สาขาของคุณก่อนที่คุณจะวิ่ง

และในการลบการอ้างอิงใด ๆคุณสามารถส่งอะไรไปที่ repository ได้เสมอ:

git push . :refs/original/refs/heads/master

คำตอบอื่น ๆ ยังครอบคลุมถึงวิธีอื่น ๆ ในการลบ


1
"ไม่ต้องกดปุ่มใด ๆ " เพื่อลบข้อมูลอ้างอิงในเครื่องนั้นฉลาดมาก
40XUserNotFound

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