Jak pobrać wszystkie gałęzie Git Śledzenie pojedynczego pilota.
Zostało to przetestowane i działa w systemach Red Hat i Git Bash w systemie Windows 10.
TLDR:
for branch in `git branch -r|grep -v ' -> '|cut -d"/" -f2`; do git checkout $branch; git fetch; done;
Wyjaśnienie:
Jedna wkładka sprawdza, a następnie pobiera wszystkie gałęzie oprócz HEAD.
Wymień gałęzie zdalnego śledzenia.
git branch -r
Zignoruj HEAD.
grep -v ' -> '
Zdejmij nazwę oddziału z pilotów.
cut -d"/" -f2
Kasa wszystkich oddziałów śledzących jednego pilota.
git checkout $branch
Pobierz dla wyewidencjonowanego oddziału.
git fetch
Technicznie rzecz biorąc, pobieranie nie jest potrzebne dla nowych lokalnych oddziałów.
Może to być wykorzystane do jednego fetch
lub obu pull
gałęzi, które są zarówno nowe, jak i mają zmiany w pilotach.
Tylko upewnij się, że ciągniesz tylko wtedy, gdy jesteś gotowy do połączenia.
Konfiguracja testowa
Sprawdź repozytorium z adresem URL SSH.
git clone git@repository.git
Przed
Sprawdź oddziały lokalnie.
$ git branch
* master
Wykonywać polecenia
Wykonaj jedną linijkę.
for branch in `git branch -r|grep -v ' -> '|cut -d"/" -f2`; do git checkout $branch; git fetch; done;
Po
Sprawdź, czy lokalne oddziały obejmują oddziały zdalne.
$ git branch
cicd
master
* preprod
--single-branch
ustawienia podczas klonowania: stackoverflow.com/questions/17714159/… (git fetch --all
nigdy nie zadziała, jeśli podasz tylko jedną gałąź!)git clone --bare <repo url> .git
(zauważ, że musisz dodać „-bare” i „.git” na końcu, aby sklonować repozytorium jako repozytorium „bare”), następniegit config --bool core.bare false
(ustawia flagę „bare” na false), a następniegit reset --hard
(przesuwa HEAD do aktualnej HEAD na repo). Teraz, jeśligit branch
powinieneś zobaczyć wszystkie gałęzie z klonowanego repozytorium.