/ / Recupero di tutte le filiali remote in un repository Git nudo - git, github

Recupero di tutte le filiali remote in un semplice repository Git - git, github

Ho creato un hook Github post-receive, che esegue uno script sul mio server web ogni volta che viene fatto un push al mio repository Github.

Quando viene eseguito lo script, voglio che mantenga un clone locale del repository sincronizzato con il mio repository Github. Per fare questo, ho eseguito questo comando:

git fetch origin && git reset --soft refs / remotes / origin / master

Quindi, se dalla mia postazione di lavoro spingo a masterizzare su Github, tutto funziona perfettamente. Tuttavia, se spingo su un altro ramo remoto, le modifiche non si riflettono nel repository locale del mio server.

Suppongo che ci sia un modo per ottenere il recupero dello script tutti dei rami remoti, ma non so come farlo, so che le versioni più recenti di git hanno un'opzione -all per fetch / pull, ma sto usando git versione 1.6.3.3, che non sembra avere questa opzione.

Qualcuno sa come posso ottenere il mio script per recuperare tutti i rami remoti?

Grazie!

risposte:

2 per risposta № 1

Utilizzare uno script di shell forse?

#!/bin/sh

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

Nota: errore terminologico di piccole dimensioni nella tua domanda: The --all opzione di git fetch|pull recupera tutti i "telecomandi", non i "rami remoti".


20 per risposta № 2

git fetch origin "*:*" ha funzionato per me


0 per risposta № 3

Ho pensato di fornire la mia soluzione mentre sono aesso. Ho accettato Ramkumar "s, come se fosse l'ispirazione per questo, la differenza è che non voglio prendere da tutti i telecomandi, ma piuttosto ogni ramo remoto in" origine "...


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

NOTA BENE: non è ancora stato implementato, ma dovrebbe essere vicino.