Réponse courte
Si vous aimez être explicite et utiliser l' -u
option si nécessaire, mais que vous ne voulez simplement pas taper le tout:
git push -u origin foo
Ensuite, vous pouvez utiliser l'alias suivant:
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
Et tapez simplement:
git push-u
Longue réponse
En règle générale, le besoin de -u
(raccourci pour --set-upstream
) est lorsque nous venons de créer une nouvelle branche locale et de commettre, et que nous voulons la pousser en amont. Le dépôt distant n'a pas encore la nouvelle branche, nous devons donc dire à git de créer et de suivre la branche distante avant de pousser le commit. Ceci n'est nécessaire que pour la première poussée sur la branche. Voici un scénario typique:
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push -u origin foo # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
Personnellement, j'aime la nécessité d'être explicite git push -u
lors de la création de la branche distante: c'est une opération assez importante, partager une toute nouvelle branche avec le monde.
Cependant, je déteste que nous devions écrire explicitement git push -u origin foo
. Non seulement c'est pénible à taper, mais surtout, c'est assez sujet aux erreurs! Il est facile de se tromper en tapant le nom de la branche, et la nouvelle branche distante n'aura pas le même nom que votre branche locale! Dans la plupart des cas, vous voulez vraiment que le référentiel en amont soit origin
et que la branche en amont ait le même nom que votre branche locale.
Par conséquent, j'utilise l'alias suivant dans my .gitconfig
, qui est un sous-ensemble de l'excellente réponse fournie par Mark :
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
Maintenant, nous pouvons faire ce qui suit, qui est toujours explicite, mais moins sujet aux erreurs:
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push-u # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
push.default
etbranch.<name>.merge
dans git-config (1) ?