Usuwanie lokalnego oddziału za pomocą Git


148

Poszukałem w Google i jest kilka bardzo długich wątków na ten temat i żaden z nich nie pomaga. Myślę, że robię coś złego. Mam oddział o nazwie Test_Branch. Kiedy próbuję go usunąć za pomocą zalecanej metody, pojawia się następujący błąd:

Nie można usunąć gałęzi „Test_Branch” wyewidencjonowanej w „[lokalizacja katalogu]”.

Poza tym nie mam żadnych innych informacji. Mogę łatwo zdmuchnąć zdalny oddział, ale lokalny oddział nie zniknie.


Przy okazji, jestem zupełnie nowy w Git. Używam tylko przez ostatnie kilka dni. Ukończyłem kilka kursów online i przeczytałem kilka książek, ale odpowiedzi też tam nie ma.
Bob Wakefield,

Jeśli wykonasz git branch, co to mówi?
coredump

21
W obrazie, to jest to, co się dzieje: publicdomainpictures.net/pictures/10000/velka/...
Coredump

git branch daje mi * Test_Branch master
Bob Wakefield

Gwiazdka mówi, w której gałęzi aktualnie się znajdujesz, co potwierdza odpowiedzi
coredump

Odpowiedzi:


277

Przełącz się na inną gałąź i usuń Test_Branchw następujący sposób:

$ git checkout master
$ git branch -d Test_Branch

Jeśli powyższe polecenie powoduje błąd - The branch 'Test_Branch' is not fully merged. If you are sure you want to delete iti nadal chcesz go usunąć, możesz wymusić jego usunięcie za pomocą -Dzamiast-d , jak:

$ git branch -D Test_Branch

Aby usunąć również Test_Branchz pilota, wykonaj:

git push origin --delete Test_Branch

36
Zamiana gałęzi była tym, co mnie dało - dobry chwyt! Nie możesz usunąć oddziału, jeśli jesteś w nim aktywny. ;-)
SliverNinja - MSFT

2
Jeśli spróbujesz kilku różnych płatności i nadal otrzymujesz ten sam komunikat, spójrz na wynik polecenia git statuslub git branch; jeśli zmieniasz bazę Test_branch, po prostu sprawdzenie innej gałęzi / zatwierdzenia tego nie naprawi. Zamiast git rebase --aborttego git checkout --detachi ostateczniegit branch -D Test_branch
droid

3
Kolejny dowód na to, że git oznacza „git is terrible”. Im częściej go używam, tym więcej tych absurdalnych obręczy musisz przeskoczyć. Zwłaszcza, że ​​prawdopodobnie chcesz od razu wrócić do tej samej gałęzi.
user949300,

A co jeśli ktoś otrzyma to w zamian, próbując zmienić oddział? error: you need to resolve your current index firsti po prostu chcą WYJŚĆ? EDYCJA - Rozwiązanie git reset --:; git checkout -D [branch_name]Uff ..
Paul

Musiałem uruchomić, git fetch --pruneponieważ usunąłem już oddział na zdalnym, ale nadal pojawiał się po git pullw git branch -a.
hipokito

21

Prawdopodobnie wyewidencjonowałeś Test_Branch i nie możesz go usunąć, gdy jest to Twoja bieżąca gałąź. Sprawdź inną gałąź, a następnie spróbuj usunąć Test_Branch.


15

Wpadłem na to dzisiaj i przejście do innego oddziału nie pomogło. Okazało się, że w jakiś sposób informacje o moim drzewie roboczym uległy uszkodzeniu i istnieje drzewo robocze z tą samą ścieżką do folderu, co mój katalog roboczy, ze HEADwskazaniem na gałąź ( git worktree list). Usunąłem .git/worktree/folder, do którego się odnosił i git branch -ddziałał.


4

Jeśli utworzyłeś wiele drzew roboczych za pomocą git workktree , musisz uruchomić, git prunezanim będziesz mógł usunąć gałąź


3
dokładniej, będziesz musiał użyćgit worktree prune
Sergioet

ale przeczytaj, co robi git prune, najpierw - może doprowadzić do utraty danych
sesquipedalias Kwietnia

1

To zadziałało ...
Usunąłem tam foldery w folderze .git / worktrees, a następnie spróbowałem „git delete -D nazwa-gałęzi”.


1

W moim przypadku pozostały niezatwierdzone zmiany z poprzedniej gałęzi. Użyłem następujących poleceń, a następnie usuwanie zadziałało.

git checkout *

git checkout master

git branch -D


0

Jak inni wspomnieli, nie możesz usunąć obecnego oddziału, w którym pracujesz.

W moim przypadku wybrałem „Test_Branch” w programie Visual Studio i próbowałem usunąć „Test_Branch” z Sourcetree (Git GUI). I wyświetlał się poniżej komunikat o błędzie.

Nie można usunąć gałęzi „Test_Branch” wyewidencjonowanej w „[lokalizacja katalogu]”.

Przełączono do innej gałęzi w programie Visual Studio i udało się usunąć „Test_Branch” z Sourcetree.

Mam nadzieję, że pomoże to komuś, kto używa Visual Studio i Sourcetree .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.