Możesz usunąć gałąź, ale najpierw otaguj ją, aby jej historia nie zniknęła. W ten sposób gałąź nie pojawia się na liście gałęzi, co, miejmy nadzieję, powinno zniechęcić ludzi do pracy nad nią, ale praca nie zostanie trwale usunięta (nawet po uruchomieniu czyszczenia pamięci). Na przykład, ilekroć mam gałąź, która stała się nieistotna, ale nie jestem przygotowany do jej trwałego usunięcia, oznaczam ją jako „archive / < nazwa-oddziału >”.
Będąc w master
lub w innym oddziale:
git tag archive/foo foo
git branch -D foo
Spowoduje to utworzenie tagu o nazwie archive/foo
z foo
gałęzi przed usunięciem foo
. Możesz również dodać wiadomość do tagu, która wyjaśnia, co jest w gałęzi, dlaczego istniała, dlaczego jest teraz ślepą uliczką itp.
git tag -m 'Foo is deprecated in favor of bar' archive/foo foo
Możliwość rejestrowania, dlaczego gałąź jest przestarzała, jest prawdopodobnie zaletą znakowania w porównaniu z przenoszeniem gałęzi do alternatywnej przestrzeni nazw.
Jeśli kiedykolwiek będziesz musiał wskrzesić gałąź, która została zarchiwizowana w ten sposób, jest to tak proste, jak:
git branch foo archive/foo
git tag -d archive/foo # Optional
Teraz gałąź jest z powrotem, jakby nigdy nie została usunięta.
--tags
opcjigit push
), a następnie usuwając zdalną gałąź (używając:<branch-to-delete>
refspec podczas wypychania). Na przykład:git tag archive/foo foo; git branch -D foo; git push --tags origin :foo
Gałęzie Git są przechowywane jako odwołania do wersji. Jeśli usuniesz gałąź, odniesienie zostanie usunięte; jeśli nic więcej nie odwołuje się do tej wersji, ostatecznie zostanie ona usunięta. Ponadto, jeśli usuniesz gałąź, to poprawnie zniknęła (z repozytorium). Jeśli chcesz oznaczyć gałąź jako przestarzałą, ale zachować ją do późniejszego wykorzystania, możesz przenieść gałąź do podkatalogu:
Alternatywnie możesz utworzyć oddzielne repozytorium dla przestarzałych gałęzi, przeciągnąć je, a następnie usunąć z oryginału. W obu przypadkach wpłynie to na wszystkich użytkowników, którzy śledzą gałęzie - zawartość ich repozytorium nie ulegnie zmianie (ani żadna z nazw ich gałęzi), ale jeśli spróbują ponownie pobrać, muszą zmienić cel w swojej konfiguracji.
źródło
git branch -D <branchName>
usunie twój oddział z repozytorium. Nie będziesz już w stanie go zobaczyć ani nawigować. Utracisz również wszystkie zmiany plików wprowadzone w tej gałęzi.https://git-scm.com/docs/git-branch
źródło
Nie będzie można się po nim poruszać za pośrednictwem gałęzi git i dopóki nie zostanie wykonane czyszczenie pamięci, nie zostanie utracone z repozytorium.
Jeśli chcesz oznaczyć daną gałąź jako ślepą uliczkę, po prostu zrób to (git może nie zrobić tego za Ciebie, ale z pewnością możesz)!
Oznaczanie go (w dowolny sposób) jako odniesienia historycznego działa.
źródło