Jak usunąć oddział w Git lokalnie i zdalnie

  • Usuwanie gałęzi jest ważną częścią typowego przepływu pracy Git.
  • Możesz usunąć oddział lokalny za pomocą polecenia „git Branch -d [branchname]”, ale należy zachować ostrożność w przypadku niescalonych zmian.
  • Różne narzędzia, takie jak GitHub Desktop, GitKraken, Tower i Bitbucket, mają własne metody usuwania gałęzi, dlatego zapoznaj się ze specyficznym procesem dla każdego narzędzia.

Gałęzie Gita są tak lekkie, że łatwo je utworzyć, kiedy tylko zajdzie taka potrzeba. Ale łatwo też zostać z resztkami gałęzi, których już nie potrzebujesz. Co zatem wiąże się z usunięciem oddziału?

Dlaczego warto usunąć oddział?

Po pierwsze, jeśli nadal uczysz się struktury projektu przy użyciu gałęzi git, istnieje całkiem duża szansa, że ​​utworzysz gałąź, a potem zdecydujesz, że nie było to konieczne. Jest to w porządku, ponieważ rozgałęzianie jest operacją lekką; jest bardzo szybki i efektywnie wykorzystuje miejsce na dysku.

W rezultacie wiele przepływów pracy związanych z programowaniem Git zachęca do rozgałęziania, nawet w przypadku bardzo małych lub krótkich zadań. Na przykład powszechną strategią jest utworzenie osobnej gałęzi dla każdej poprawki błędu.

Usuwanie oddziałów powinno być tak samo częścią codziennej pracy, jak ich tworzenie.

Przykładowe repozytorium z oddziałami

Poniższe przykłady odnoszą się do przykładowego repozytorium o następującej strukturze:

Zauważ, że repozytorium ma dwie gałęzie: main i dev. Każda z tych gałęzi lokalnych jest gałęzią śledzącą, z odpowiadającą jej gałęzią nadrzędną na serwerze zdalnym (pochodzenie).

Łatwo jest stracić kontrolę nad gałęziami, więc upewnij się, że wiesz, jak wyświetlić listę gałęzi git z wiersza poleceń lub wyświetlić je w preferowanym kliencie.

Usuwanie gałęzi za pomocą wiersza poleceń

Podstawowa składnia polecenia usuwania gałęzi jest następująca:

 git branch (-d | -D) [-r] <branchname>... 

Jak usunąć oddział lokalny

Najprostsza forma polecenia usuwa oddział lokalny, pod warunkiem, że wszystkie jego zmiany zostały scalone:

 git branch -d dev 

Gdy wszystko pójdzie dobrze, zobaczysz komunikat z potwierdzeniem:

Nie możesz usunąć aktualnie aktywnego oddziału; jeśli spróbujesz to zrobić, otrzymasz następujący komunikat:

Jeśli usuniesz oddział lokalny z niezintegrowanymi i nieprzesłanymi zmianami, utracisz te zmiany. Dlatego git domyślnie odmówi usunięcia takiej gałęzi. W tym przykładzie deweloper rozłączył zmiany, które nie zostały przesłane do zdalnej gałęzi:

Jak mówi komunikat o błędzie, możesz wymusić usunięcie za pomocą flagi -D.

Możesz usunąć lokalną gałąź śledzenia, jeśli odpowiadająca jej zdalna gałąź jest aktualna, nawet jeśli nie jest scalona. Git nadal będzie wyświetlał ostrzeżenie, więc będziesz świadomy tego, co się stało:

Jak usunąć oddział zdalny

Usuwanie oddziału zdalnego przebiega zupełnie inaczej. Do usunięcia użyjesz polecenia git push wraz z flagą -d. Następnie podaj nazwę pilota (często pochodzenia) i nazwę oddziału:

Usuwanie oddziałów lokalnych i zdalnych za pomocą GitHub Desktop

W przeciwieństwie do programu git wiersza poleceń, Aplikacja komputerowa GitHub pozwoli ci usunąć tylko aktywną gałąź. Akcję tę możesz wykonać poprzez menu Oddział, wybierając opcję Usuń i potwierdzając ją:

GitHub Desktop nie pozwoli ci usunąć domyślnej gałęzi – np. głównej – nawet jeśli sam git to obsługuje. Jeśli domyślną gałęzią jest ta, która jest aktualnie aktywna, aplikacja wyłącza akcję menu.

Jeśli gałąź reprezentuje również gałąź zdalną, GitHub Desktop daje możliwość usunięcia jej również ze strony zdalnej:

Usuwanie gałęzi za pomocą GitKraken

GitKrakena wyświetla lokalne i zdalne gałęzie repozytorium na lewym pasku bocznym. Musisz usunąć każdy z osobna.

Najedź kursorem na odpowiednią nazwę oddziału i kliknij menu Działania oddziału, które wygląda jak trzy pionowe kropki. Z menu wybierz opcję Usuń :

Zobaczysz komunikat potwierdzający informujący, że jest to operacja destrukcyjna. Możesz potwierdzić, że chcesz kontynuować, klikając przycisk Usuń:

Odzwierciedlając domyślne zachowanie programu wiersza poleceń git, musisz najpierw przełączyć się do gałęzi innej niż ta, którą usuwasz. W przeciwnym razie zobaczysz komunikat o błędzie:

Usuwanie oddziałów lokalnych i zdalnych za pomocą Tower

Usuwanie oddziału za pomocą Wieża jest bardzo podobne do usuwania gałęzi za pomocą GitKraken. Aplikacja wyświetla oddziały lokalne i zdalne w panelu po lewej stronie. Kliknij prawym przyciskiem myszy dowolną gałąź i wybierz opcję Usuń z menu kontekstowego:

Jedną z kluczowych różnic jest to, że podczas potwierdzania możesz usunąć oddział zdalny wraz z oddziałem lokalnym:

Usuwanie oddziału w GitHubie

GitHub działa tylko jako źródło zdalne, więc gałęzie tam domyślnie są zdalne. Jeśli usuniesz oddział za pomocą witryny GitHub, będziesz musiał usunąć odpowiedni oddział lokalny, korzystając z jednej z pozostałych metod tutaj.

Podobnie jak w przypadku aplikacji GitHub Desktop, witryna GitHub nie pozwala na usunięcie domyślnej gałęzi. Jeśli spróbujesz, zobaczysz komunikat o błędzie:

Jednak usunięcie dowolnej innej gałęzi jest proste. Na stronie Kod repozytorium kliknij link gałęzi, zlokalizuj gałąź do usunięcia, a następnie kliknij ikonę Usuń gałąź, która wygląda jak kosz na śmieci:

Pamiętaj, że nie ma kontroli pod kątem niezintegrowanych zmian, więc GitHub po prostu natychmiast usunie gałąź. Ponieważ jednak zawsze będzie to gałąź zdalna, takie zachowanie powinno mieć sens.

Pamiętaj, że po usunięciu zobaczysz przycisk Przywróć gałąź. Jest to jednak po prostu przydatna funkcja cofania, na wypadek przypadkowego kliknięcia ikony usuwania. Nie polegaj na tym, bo gdy tylko odświeżysz stronę lub opuścisz stronę, stracisz tę opcję!

Usuwanie oddziałów lokalnych i zdalnych w Bitbucket

Bitbucket, podobnie jak GitHub, nie pozwoli Ci usunąć domyślnej gałęzi. Bitbucket nazywa to gałęzią główną w ustawieniach repozytorium. Możesz usunąć dowolną inną gałąź wymienioną na karcie Oddziały, korzystając z odpowiedniego menu Czynności:

Możesz także usunąć więcej niż jedną gałąź na raz, jeśli wykonujesz dużą operację czyszczenia:

Usuwanie gałęzi jest częścią typowego przepływu pracy Git

Gałęzie Git mogą skomplikować przepływ pracy, zwłaszcza z gałęziami lokalnymi, zdalnymi i śledzącymi. Jednak w przypadku prostego, codziennego programowania prawdopodobnie będziesz cały czas tworzyć i usuwać lokalne oddziały. Jest to podstawowy aspekt typowego przepływu pracy w Git, do którego powinieneś się przyzwyczaić.

Jeśli nie pamiętasz dokładnie, jak usunąć gałąź, rozważ ustawienie aliasów do usuwania gałęzi i po prostu cały proces.