/ / Pobieranie wszystkich zdalnych gałęzi do nagiego repozytorium Git - git, github

Pobieranie wszystkich zdalnych gałęzi do nagiego repozytorium Git - git, github

Skonfigurowałem hak Github po odbiorze, który uruchamia skrypt na moim serwerze internetowym za każdym razem, gdy wypychane jest moje repozytorium Github.

Po uruchomieniu skryptu chcę, aby utrzymywał synchronizację lokalnego nagiego klonu repozytorium z moim repozytorium Github. Aby to zrobić, mam polecenie:

git fetch origin && git reset - miękkie referencje / piloty / pochodzenie / master

Następnie, jeśli z mojej stacji roboczej naciskam na opanowanie Github, wszystko działa dobrze. Jeśli jednak przepchnę się do innej zdalnej gałęzi, zmiany nie zostaną odzwierciedlone w lokalnym nagim repozytorium mojego serwera.

Zakładam, że istnieje sposób na pobranie skryptu wszystko zdalnych gałęzi, ale nie wiem, jak to zrobić. Wiem, że nowsze wersje git mają opcję --all dla pobierania / ściągania, ale używam gita w wersji 1.6.3.3, która nie wydaje się mieć tę opcję.

Czy ktoś wie, jak mogę uzyskać skrypt do pobrania wszystkich zdalnych gałęzi?

Dzięki!

Odpowiedzi:

2 dla odpowiedzi № 1

Może użyć skryptu powłoki?

#!/bin/sh

for i in `git remote show`; do
git fetch $i;
done;

Uwaga: Mały błąd terminologiczny w pytaniu: --all opcja git fetch|pull pobiera wszystkie „piloty”, a nie „zdalne oddziały”.


20 dla odpowiedzi nr 2

git fetch origin "*:*" pracował dla mnie.


0 dla odpowiedzi № 3

Doszedłem do wniosku, że dostarczę własne rozwiązanie, gdy jestemto. Zaakceptowałem Ramkumara, ponieważ było to inspiracją do tego. Różnica polega na tym, że nie chcę pobierać ze wszystkich pilotów, ale raczej każdej odległej gałęzi w „pochodzeniu” ...


#!/bin/bash
REMOTE_BRANCHES=$(git branch -r | awk -F"/" "{print $2}")
for i in $REMOTE_BRANCHES; do
git fetch origin $i
done

ZASTRZEŻENIE: jeszcze nie wdrożyłem tego, ale powinno być blisko.