web-dev-qa-db-fra.com

Comment pouvez-vous git tirer uniquement la branche actuelle?

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

67
qodeninja

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

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

64
Seth Robertson

Je viens de le faire de cette façon:

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

ou

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

Cela extrait la branche actuelle de git branch, et extrait cette branche de l'origine distante.

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

48
ayke

MISE À JOUR

L'ancienne réponse que j'ai ajoutée ne fonctionne plus: /. Mais après avoir reçu des votes positifs sur la version Push que j'ai placée, cela signifie pour moi que cette réponse aide réellement quelqu'un qui finit par venir ici des moteurs de recherche, donc je vais garder cette réponse.

Essayez ceci pour la nouvelle version de git:

$ git config --global Push.default current
16
Bruno Casali

Oui, il y a une configuration qui peut être modifiée dans .gitconfig, par exemple:

[Push]
  default = current

ce qui pousserait la branche actuelle à mettre à jour une branche avec le même nom du côté réception.

Vérifier par:

git config --global --get Push.default

Voir: git-config .

3
kenorb

Le --set-upstream L'indicateur est obsolète 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
3
biniam