Existe-t-il un moyen de configurer cela sans avoir à spécifier la branche ?
Réponses
Trop de publicités?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}
}
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.
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
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é).
- Réponses précédentes
- Plus de réponses