W naszym przepływie pracy gałęzie programistyczne, które są gotowe do produkcji, są wypychane do zdalnego repozytorium śledzenia, gdzie są łączone w master. Gałąź jest usuwana po przejściu testów.
Byłem zły w usuwaniu mojej lokalnej wersji tych gałęzi programistycznych, więc teraz mam wiele lokalnych gałęzi, które nie mają odpowiadającej gałęzi na początku.
Czy istnieje szybki sposób na sprawdzenie, które gałęzie w moim repozytorium zostały już usunięte ze zdalnego repozytorium?
Odpowiedzi:
7 dla odpowiedzi № 1Znajdowanie i usuwanie lokalnych oddziałów pod pozycjami / główkami
Zakładając, że oryginalny plakat oznacza, że chce usunąć lokalne oddziały refs/heads
a nie gałęzie zdalnego śledzenia w refs/remotes/origin
, aby znaleźć gałęzie, które już zostały połączone origin/master
, po prostu użyj następującego:
# Fetch latest copy of origin/master
$ git fetch origin
# Find merged branches
$ git branch --merged origin/master
Dane wyjściowe pokażą gałęzie, które zostały scalone nto origin/master
, a zatem można je bezpiecznie usunąć za pomocą git branch -d <branch>
. Od oficjalna dokumentacja Linux Kernel Git dla git branch
:
„--merged” służy do znajdowania wszystkich gałęzi, które można bezpiecznie usunąć, ponieważ gałęzie te są w pełni zawarte przez HEAD.
Usuwanie oddziałów zdalnego śledzenia w obszarze referencji / pilotów / pochodzenia
Jeśli z drugiej strony oryginalny plakat oznaczał, że chce usunąć swoje gałęzie zdalnego śledzenia, po prostu przekaż go -p
lub --prune
flagi do git fetch
:
$ git fetch -p origin
Od oficjalna dokumentacja Linux Kernel Git dla git fetch
:
Po pobraniu usuń wszystkie gałęzie zdalnego śledzenia, które już nie istnieją na pilocie.
2 dla odpowiedzi nr 2
git fetch -p
Z instrukcji:
-p, - śliwka Po pobraniu usuń wszystkie gałęzie zdalnego śledzenia, które już nie istnieją na pilocie.