Proszę rozważyć zmianę zaakceptowanej odpowiedzi na odpowiedź Alexey Ten, która jest wysoko oceniona i poprawna ( git update-ref -d).
Jonathon Reinhart
Odpowiedzi:
11
Wygląda jak znacznik, więc następujące polecenie powinno działać:
git tag -d refs/original/refs/heads/master
Ale ponieważ powiedziałeś, że tak nie jest, możesz po prostu usunąć plik z .gitkatalogu. Z katalogu głównego repozytorium takie polecenie otrzyma:
rm .git/refs/tags/refs/original/refs/heads/master
Ścieżka może być nieco inna, jeśli git-tagpolecenie się nie powiedzie, więc możesz chcieć cd .git/refsi znaleźć obrażającą głowę metodą prób i błędów. Usunięcie pliku spowoduje usunięcie odwołania z lokalnego repozytorium.
To zadziałało dla mnie z tym samym problemem. Zauważ, że referencja została zapisana w pliku o nazwie .git /pack-refs. Jeśli to otworzysz, zobaczysz wiersz z SHA i ciąg „refs / original / refs / heads / master”. Prawdopodobnie możesz usunąć tę linię, ale użyłbym tego polecenia, aby być bezpiecznym.
Matt N
14
+1: Należy zawsze używać git update-ref -dzamiast tylko rming ref - złe rzeczy mogą się zdarzyć inaczej.
Callum Rogers
3
To powinna być zaakceptowana odpowiedź
Daniel Alder
1
@CallumRogers dlaczego?
wahnfrieden,
6
@wahnfrieden, ponieważ git mógłby użyć spakowanych referencji i nie będzie odpowiedniego pliku w refskatalogu
Alexey Ten
17
To jest ref. Zwykle tworzony przez git filter-branch- jest wskaźnikiem do miejsca, w którym znajdowała się twoja gałąź przed uruchomieniem git filter-branch.
Aby usunąć dowolne odwołanie, zawsze możesz wcisnąć do niego nic w lokalnym repozytorium:
git push . :refs/original/refs/heads/master
Pozostałe odpowiedzi obejmowały również całkiem inne sposoby usuwania.
git update-ref -d
).Odpowiedzi:
Wygląda jak znacznik, więc następujące polecenie powinno działać:
Ale ponieważ powiedziałeś, że tak nie jest, możesz po prostu usunąć plik z
.git
katalogu. Z katalogu głównego repozytorium takie polecenie otrzyma:Ścieżka może być nieco inna, jeśli
git-tag
polecenie się nie powiedzie, więc możesz chciećcd .git/refs
i znaleźć obrażającą głowę metodą prób i błędów. Usunięcie pliku spowoduje usunięcie odwołania z lokalnego repozytorium.źródło
.git/refs/original/refs/heads/master
.git update-ref
zamiast ręcznie modyfikować wewnętrzne elementy Gita. Zobacz odpowiedź Alexeya.To polecenie powinno działać
źródło
git update-ref -d
zamiast tylkorm
ing ref - złe rzeczy mogą się zdarzyć inaczej.refs
kataloguTo jest ref. Zwykle tworzony przez
git filter-branch
- jest wskaźnikiem do miejsca, w którym znajdowała się twoja gałąź przed uruchomieniemgit filter-branch
.Aby usunąć dowolne odwołanie, zawsze możesz wcisnąć do niego nic w lokalnym repozytorium:
Pozostałe odpowiedzi obejmowały również całkiem inne sposoby usuwania.
źródło