'Refs / original / refs / heads / master' git referansını nasıl silebilirim?


35

Bu sarı yuvarlak kutuda ne var?

ekran görüntüsü

Denedim git branch -D, git tag -dama hiçbiri başarılı oldu. Peki nasıl silinir?


1
Lütfen kabul edilen cevabı Alexey Ten'in oldukça fazla oy alan ve doğru ( git update-ref -d) cevabına değiştirmeyi düşünün .
Jonathon Reinhart

Yanıtlar:


11

Bir etikete benziyor, bu nedenle aşağıdaki komut işe yaramalı:

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

Ancak, öyle olmadığını söylediğiniz için dosyayı dizinden silebilirsiniz .git. Depo kökünden, böyle bir komut onu alır:

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

git-tagKomut başarısız olursa, yol biraz farklı olabilir , bu nedenle cd .git/refsrahatsız edici başlığı deneme yanılma yoluyla bulmak isteyebilirsiniz . Dosyayı silmek referansı yerel deponuzdan kaldıracak.


2
Bu bir etiket değil, ancak olarak buldum .git/refs/original/refs/heads/master.
Xiè Jìléi

1
git update-refGit'in iç öğelerini elle mutasyona geçirmek yerine kullanın . Alexey'un cevabını görün.
wchargin

100

Bu komut çalışmalı

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

Bu benim için aynı sorunla çalıştı. Referansın .git / packs-refs adlı bir dosyada saklandığını unutmayın. Açtığınızda, SHA ile "refs / original / refs / heads / master" dizesini görebilirsiniz. Muhtemelen bu satırı silebilirsin, ama bu komutu güvenli olmak için kullanırdım.
Matt N

14
+1: Aksi takdirde olabilecek kötü şeyler yapmadan sadece her zaman kullanmalısın . git update-ref -drm
Callum Rogers

3
Bu kabul edilen cevap olmalıdır
Daniel Alder

1
@CallumRogers neden?
wahnfrieden

6
@wahnfrieden, git paketlenmiş referansları kullanabileceği ve refsdizinde buna karşılık gelen bir dosya olmayacağı için
Alexey Ten

17

Bu bir ref. Normalde tarafından oluşturulmuş git filter-branch- bu, şubenizin koştuğunuzdan önceki yerini gösteren bir işaretçidir git filter-branch.

Ve herhangi bir ref'i silmek için yerel depoda her zaman hiçbir şeye itemezsin:

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

Diğer cevaplar, silmenin diğer yollarını da içermektedir.


1
Referansı yerel olarak silmek için "hiçbir şeyi itmek" çok zekice.
40XUserNotFound

Günümü şenlendirdin. Uzaktan kumandanın artık bulunmadığı bir uzak etikete atıfta bulundum. Bu işe yarayan tek komut.
RW4
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.