Miałem dwie gałęzie: masteri branch1. Właśnie połączyła się branch1z powrotem do masteri skończę z tego oddziału. Czy powinienem go usunąć, czy po prostu pozwolić mu usiąść? Czy usunięcie go spowoduje utratę danych?
Dodatkowo git ostrzeże Cię (i odmówi usunięcia gałęzi), jeśli myśli, że jeszcze go nie scaliłeś. Jeśli wymusisz usunięcie gałęzi (z git branch -D), która nie jest jeszcze całkowicie scalona, musisz wykonać kilka sztuczek, aby odzyskać niezmergowane zatwierdzenia (patrz poniżej).
Istnieje jednak kilka powodów, aby trzymać oddział w pobliżu. Na przykład, jeśli jest to gałąź funkcji, możesz chcieć mieć poprawki błędów dla tej funkcji, która wciąż znajduje się w tej gałęzi.
Jeśli chcesz również usunąć oddział na zdalnym hoście, możesz:
git push origin :branch1
Spowoduje to wymuszone usunięcie gałęzi na pilocie (nie wpłynie to jednak na już wypisane repozytoria i nie uniemożliwi nikomu z dostępem push do ponownego wypchnięcia / utworzenia).
git reflogpokazuje ostatnio sprawdzone wersje. Każdy oddział, który sprawdziłeś w najnowszej historii repozytorium, również się tam pojawi. Poza tym git fsckbędzie narzędziem wyboru w każdym przypadku utraty zatwierdzenia w git.
Jeśli chcesz zapisać oddział, możesz utworzyć znacznik przed jego usunięciem. Jeśli chcesz wrócić do tego punktu, możesz pobrać ten tag.
Joqus
3
@Joqus W takim przypadku wolałbym raczej zachować go jako gałąź. Po prostu nie publikuj tego.
Jonas Schäfer
Na wszelki wypadek - jeśli chcesz „całkowicie scalić” gałąź przed usunięciem, po prostu wciśnij tę gałąź po scaleniu, ale przed usunięciem. Coś w stylugit checkout master && git merge branch1 && git push origin branch1 && git branch -d branch1
avtomaton
25
Wolę RENAME zamiast DELETE
Wszystkie moje oddziały są nazwane w formie
Fix/fix-<somedescription> lub
Ftr/ftr-<somedescription> lub
itp.
Korzystanie Wieża jak mój git przedniej części, to starannie organizuje wszystko Ftr/, Fix/, Test/itd. W katalogach.
Kiedy skończę z oddziałem, zmieniam ich nazwy na Done/...-<description>.
W ten sposób wciąż tam są (co może być przydatne do dostarczenia historii) i zawsze mogę wrócić, wiedząc, co to było (funkcja, naprawa, testowanie itp.)
Wydaje się zbędne utrzymywanie tych gałęzi i szaleństwo zmieniać ich nazwy . Czy coś mi umyka? Zawsze możesz odtworzyć gałąź. stackoverflow.com/questions/3640764/…
ksav
nie ma sensu utrzymywać oddziałów po ich połączeniu
rastaman
2
+1 za pomysł zmiany nazwy na Napraw, Testuj i Gotowe ... Utrzymanie oddziałów to sposób, w jaki kontrahenci otrzymują wynagrodzenie w mojej firmie.
jpfreire
1
Jeśli pójdziesz dalej i usuniesz gałąź po scaleniu.
Po prostu zadbaj o to, aby
wszystkie odsyłacze do adresów URL odsyłaczy do usuniętych gałęzi były USZKODZONE .
Odpowiedzi:
Po scaleniu można bezpiecznie usunąć gałąź:
Dodatkowo git ostrzeże Cię (i odmówi usunięcia gałęzi), jeśli myśli, że jeszcze go nie scaliłeś. Jeśli wymusisz usunięcie gałęzi (z
git branch -D
), która nie jest jeszcze całkowicie scalona, musisz wykonać kilka sztuczek, aby odzyskać niezmergowane zatwierdzenia (patrz poniżej).Istnieje jednak kilka powodów, aby trzymać oddział w pobliżu. Na przykład, jeśli jest to gałąź funkcji, możesz chcieć mieć poprawki błędów dla tej funkcji, która wciąż znajduje się w tej gałęzi.
Jeśli chcesz również usunąć oddział na zdalnym hoście, możesz:
Spowoduje to wymuszone usunięcie gałęzi na pilocie (nie wpłynie to jednak na już wypisane repozytoria i nie uniemożliwi nikomu z dostępem push do ponownego wypchnięcia / utworzenia).
git reflog
pokazuje ostatnio sprawdzone wersje. Każdy oddział, który sprawdziłeś w najnowszej historii repozytorium, również się tam pojawi. Poza tymgit fsck
będzie narzędziem wyboru w każdym przypadku utraty zatwierdzenia w git.źródło
git checkout master && git merge branch1 && git push origin branch1 && git branch -d branch1
Wolę RENAME zamiast DELETE
Wszystkie moje oddziały są nazwane w formie
Fix/fix-<somedescription>
lubFtr/ftr-<somedescription>
lubKorzystanie Wieża jak mój git przedniej części, to starannie organizuje wszystko
Ftr/
,Fix/
,Test/
itd. W katalogach.Kiedy skończę z oddziałem, zmieniam ich nazwy na
Done/...-<description>
.W ten sposób wciąż tam są (co może być przydatne do dostarczenia historii) i zawsze mogę wrócić, wiedząc, co to było (funkcja, naprawa, testowanie itp.)
źródło
Jeśli pójdziesz dalej i usuniesz gałąź po scaleniu.
Po prostu zadbaj o to, aby
wszystkie odsyłacze do adresów URL odsyłaczy do usuniętych gałęzi były USZKODZONE .
źródło