Une branche locale de git peut suivre une branche distante, ce qui signifie que les commandes git push et git pull sauront pousser et tirer des commits vers et depuis la branche suivie par défaut. De même, git status indiquera le statut entre votre branche locale actuelle et la branche distante qu'elle suit. Lorsque vous clonez un dépôt git, git ajoute une référence de suivi à la branche maîtresse locale pour suivre la branche maîtresse distante. Lorsque vous effectuez un checkout depuis une nouvelle branche distante, git ajoute une référence de suivi à la branche locale créée pour suivre la branche distante que vous avez extraite.
Cependant, si vous créez une nouvelle branche localement, et que vous la poussez ensuite vers le dépôt distant, vous devez indiquer explicitement à git si vous voulez que votre branche locale commence à suivre la nouvelle branche distante. Vous faites cela avec l'option -u
ou --set-upstream
lors de la poussée de la branche locale vers le référentiel distant : git push -u origin my-new-branch
.
Vous pouvez vérifier quelles branches distantes sont suivies par vos branches locales (s'il y en a) avec la commande git branch -vv
Vous trouverez ci-dessous un petit exemple du résultat.
b1 560eb64 Added file.txt
b2 560eb64 [origin/b2] Added file.txt
b3 b638c18 [origin/r1: ahead 1] Added file3.txt
* master 560eb64 [origin/master] Added file.txt
Dans ce cas, nous avons des branches locales master
, b1
, b2
et b3
. Le site master
suit une branche distante appelée master
le b1
ne suit aucune branche distante, la branche b2
suit une branche distante appelée b2
et le b3
suit une branche distante appelée r1
. git branch -vv
montre également le statut de la branche liée à la branche tracée. Ici, la branche b3
a 1 commit d'avance sur la branche distante suivie et les autres branches sont à jour avec leurs branches distantes suivies respectives.
Ainsi, si vous créez une branche locale et la poussez vers le dépôt distant, voulez-vous ajouter une référence de suivi à la branche ou non ? Habituellement, lorsque vous poussez une nouvelle branche locale vers le dépôt distant, vous le faites pour collaborer avec d'autres développeurs sur une fonctionnalité. Si vous ajoutez une référence de suivi à votre branche locale, vous pouvez facilement récupérer les modifications que d'autres personnes ont apportées à la branche, donc je dirais que dans la plupart des cas, vous voulez ajouter la référence de suivi.
2 votes
Voir push -u pour le scoop.
0 votes
Si je comprends correctement les pages de manuel git pour push, pull et config, une référence de suivi est un paramètre ou des paramètres ajoutés au fichier de configuration, utilisés par git-pull sans argument pour lui dire quoi tirer vers le bas. Je trouve la documentation un peu confuse, mais selon moi, la référence de suivi est une combinaison des paramètres suivants dans le fichier de configuration : remote.<name>.fetch et branch.<name>.merge. Est-ce correct ?
1 votes
La référence de suivi est le lien entre un blanchiment local (par exemple
master
) et d'une branche distante (par ex.origin/master
).