Bagaimana cara menghapus referensi git `refs / original / refs / heads / master`?


35

Apa ini di kotak kuning?

tangkapan layar

Saya sudah mencoba git branch -D, git tag -dtetapi tidak ada yang berhasil. Jadi bagaimana cara menghapusnya?


1
Harap pertimbangkan untuk mengubah jawaban yang diterima menjadi jawaban Alexey Ten yang sangat dipilih, dan benar ( git update-ref -d).
Jonathon Reinhart

Jawaban:


11

Itu terlihat seperti sebuah tag, jadi perintah berikut ini harus berfungsi:

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

Tapi, karena Anda sudah mengatakan tidak, Anda bisa menghapus file dari .gitdirektori. Dari akar repositori, perintah seperti ini akan mendapatkannya:

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

Jalur mungkin sedikit berbeda jika git-tagperintah gagal, jadi Anda mungkin ingin cd .git/refsdan menemukan kepala yang menyinggung dengan coba-coba. Menghapus file akan menghapus referensi dari repositori lokal Anda.


2
Ini bukan tag, namun, saya telah menemukannya sebagai .git/refs/original/refs/heads/master.
Xiè Jìléi

1
Gunakan git update-refdaripada secara manual memutasi internal Git. Lihat jawaban Alexey.
wchargin

100

Perintah ini seharusnya bekerja

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

Ini bekerja untuk saya dengan masalah yang sama. Perhatikan bahwa referensi disimpan dalam file bernama .git / packed-refs. Jika Anda membukanya, Anda dapat melihat baris dengan SHA dan string "ref / original / refs / heads / master". Anda mungkin dapat menghapus baris itu, tetapi saya akan menggunakan perintah ini untuk aman.
Matt N

14
+1: Anda harus selalu menggunakan git update-ref -dalih - alih rmhal - hal buruk dapat terjadi sebaliknya.
Callum Rogers

3
Ini harus menjadi jawaban yang diterima
Daniel Alder 3-15

1
@CallumRogers mengapa?
wahnfrieden

6
@wahnfrieden karena git bisa menggunakan ref yang sudah dikemas dan tidak akan ada file yang sesuai di refsdirektori
Alexey Ten

17

Ini adalah referensi. Biasanya dibuat oleh git filter-branch- ini adalah pointer ke tempat cabang Anda sebelum Anda berlari git filter-branch.

Dan untuk menghapus referensi apa pun , Anda selalu dapat mendorong apa pun untuk itu di repositori lokal:

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

Jawaban lainnya juga mencakup cara lain yang cukup baik untuk dihapus.


1
"Mendorong apa pun" untuk menghapus referensi secara lokal sangat cerdas.
40XUserNotFound

Membuatku bahagia. Saya memiliki referensi ke tag jarak jauh bahwa remote tidak lagi ada. Ini adalah satu-satunya perintah yang berhasil.
RW4
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.