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