Git: usuwanie lokalnej gałęzi
Ostatnia aktualizacja
Gdy praca z gałęzi jest już scalona, usuwasz ją przez git branch -d <branch>. Git odmówi, jeśli gałąź ma commity, które nie są nigdzie scalone: to zabezpieczenie. Żeby usunąć ją mimo to, użyj wielkiego -D. Usunięcie lokalnej gałęzi nigdy nie rusza jej kopii w repozytorium zdalnym; do tego służy osobne polecenie.
Wypróbuj te polecenia w terminalu online: prawdziwa powłoka w przeglądarce, bez żadnej instalacji.
Składnia
| Polecenie | Co robi |
|---|---|
git branch -d feature | Usuwa feature (tylko jeśli jest scalona) |
git branch -D feature | Wymusza usunięcie feature, nawet niescalonej |
git branch -d branch1 branch2 | Usuwa kilka gałęzi naraz |
Typowe przypadki
| Cel | Polecenie |
|---|---|
| Usunąć scaloną gałąź | git branch -d old-feature |
| Wymusić usunięcie niescalonej gałęzi | git branch -D scratch |
| Usunąć gałąź, na której jesteś | git switch main, potem git branch -d feature |
| Sprawdzić, które gałęzie są scalone | git branch --merged |
Przykład krok po kroku
Skończ funkcję, scal ją i posprzątaj lokalną gałąź.
| Krok | Polecenie | Wynik |
|---|---|---|
| 1 | git switch main | Zejdź z gałęzi, którą chcesz usunąć |
| 2 | git merge feature | Przenieś commity funkcji do main |
| 3 | git branch -d feature | Usuń już scaloną gałąź |
Najczęstsze pytania o usuwanie lokalnej gałęzi
Czym różni się git branch -d od -D?
-d to bezpieczne usuwanie: Git usuwa gałąź tylko wtedy, gdy jej commity są już scalone z inną gałęzią, więc nie stracisz pracy przez przypadek. -D to wymuszone usuwanie (skrót od --delete --force): usuwa gałąź bez względu na wszystko, nawet jeśli ma niescalone commity. Domyślnie używaj -d, a po -D sięgaj tylko wtedy, gdy na pewno chcesz wyrzucić commity z tej gałęzi.Jak usunąć gałąź, na której aktualnie jestem?
Nie da się usunąć gałęzi, na której aktualnie jesteś. Najpierw przełącz się na inną gałąź przez
git switch main (albo git checkout main), a potem uruchom git branch -d feature. Próba usunięcia bieżącej gałęzi kończy się błędem "Cannot delete branch ... checked out".Czy usunięcie lokalnej gałęzi usuwa ją też na GitHubie?
Nie.
git branch -d usuwa gałąź tylko z lokalnego repozytorium. Gałąź w repozytorium zdalnym (GitHub, GitLab itp.) zostaje, dopóki nie usuniesz jej osobno przez git push origin --delete feature.Czy da się odzyskać usuniętą gałąź?
Zwykle tak, jeśli usunięcie było niedawno. Uruchom
git reflog, żeby znaleźć commit, na który wskazywała gałąź, a potem odtwórz ją przez git branch feature <commit-hash>. Commity nie są od razu usuwane przez garbage collector, więc gałąź usuniętą przez pomyłkę zwykle da się przywrócić.Czy mogę to przećwiczyć online?
Tak. Otwórz terminal online i uruchom te polecenia w prawdziwej powłoce w przeglądarce, bez żadnej instalacji. Jeśli chcesz uporządkowanej nauki, darmowy interaktywny kurs Git w Coddy krok po kroku prowadzi od pierwszego commita przez tworzenie gałęzi po scalanie.