97 votes

Comment peut-on faire un git pull uniquement sur la branche courante ?

Existe-t-il un moyen de configurer cela sans avoir à spécifier la branche ?

101voto

Seth Robertson Points 13276

Git ne tire déjà que la branche courante. Si vous avez configuré la branche comme une branche de suivi, vous n'avez pas besoin de spécifier la branche distante. git branch --set-upstream localbranch reponame/remotebranch permettra de mettre en place la relation de suivi. Vous devez ensuite émettre git pull [--rebase] et seule cette branche sera mise à jour.

Bien sûr, toutes les branches de suivi distantes et toutes les références pour la branche distante seront mises à jour, mais seule votre branche de suivi locale sera modifiée.

Un alias Bash utile pour réduire la saisie de cette opération courante :

# Add an alias to pulling latest git changes into your same branch
alias pullhead='git pull origin $(git rev-parse --abbrev-ref HEAD)'

Fonction Powershell qui fait la même chose :

Function pullhead {
    $cur_head="$(git rev-parse --abbrev-ref HEAD)"
    & git pull origin ${cur_head}
}

76voto

ayke Points 385

Je l'ai fait comme ça :

git pull origin "$(git branch | grep -E '^\* ' | sed 's/^\* //g')"

ou

git pull origin $(git rev-parse --abbrev-ref HEAD)

Ceci extrait la branche courante de git branch et tire cette branche de l'origine distante.

Notez, comme Seth Robertson l'a dit, que lorsque aucun argument n'est donné, seule la branche courante est modifiée mais toutes les branches distantes sont récupérées. Je ne veux pas récupérer toutes les branches distantes, donc je l'ai fait de cette façon.

12voto

Bruno Casali Points 991

UPDATE

L'ancienne réponse que j'ai ajoutée ne fonctionne plus :/. Mais après avoir reçu quelques upvotes sur la version PUSH que j'ai placé, pour moi signifie que cette réponse est effectivement aider quelqu'un que la fin de venir ici à partir de moteurs de recherche, donc je vais garder cette réponse.

Essayez ceci pour la nouvelle version de git :

$ git config --global push.default current

1voto

biniam_Ethiopia Points 452

Le site --set-upstream est déprécié et sera supprimé. Par conséquent, utilisez --track ou --set-upstream-to

Exemple : Si vous souhaitez définir des informations de suivi pour cette branche, vous pouvez le faire avec :

git branch --set-upstream-to=<remote>/<branch> develop

0voto

Scott Bilas Points 4958

Voici un alias de git qui ne suppose pas que le distant est origin et des poignées si la branche ne suit pas une télécommande.

pullh = "!f() { set -e; set -o pipefail; arr=($(git rev-parse --abbrev-ref @{u} | sed 's/\\//\\n/')); git pull ${arr[0]} ${arr[1]}; }; f"

(Disclaimer : Je suis un novice en matière de bash et ce qui précède pourrait probablement être beaucoup simplifié).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X