Après avoir créé une branche avec --track (ou en laissant la valeur par défaut, ou --notrack), vous souhaiterez plus tard être rappelé de ce qu'une branche est en train de suivre. Existe-t-il un moyen, autre que la recherche dans le fichier .git/config, d'afficher ce que la branche suit?Quel est le suivi de cette branche (le cas échéant) dans git?
Répondre
Utilisez: git branch -vv
pour voir quelles branches sont suivies et celles qui ne le sont pas.
Si vous voulez savoir pour une branche donnée, vous pouvez faire:
git config --get branch.<branch>.remote
Si elle imprime une télécommande, il y a quelque chose de suivi. Si cela n'imprime rien et renvoie un échec, ce n'est pas le cas.
Si vous avez besoin d'accéder à cette information de manière automatisée, vous voudrez éviter d'essayer d'analyser la sortie de branch -vv
(slebetman’s answer).
Git fournit un ensemble de commandes de niveau inférieur avec des interfaces stables et des formats de sortie. Ces commandes (appelées "plomberie") sont l'interface préférée pour les "scripts". La commande git for-each-ref peut fournir les informations requises par le jeton upstream
(disponible dans Git 1.6.3 et versions ultérieures):
% git for-each-ref --shell --format='
b=%(refname:short) u=%(upstream:short)
# Make a fancy report or do something scripty with the values.
if test -n "$u"; then
printf "%s merges from %s\n" "$b" "$u"
else
printf "%s does not merge from anything\n" "$b"
fi
' refs/heads/ | sh
master merges from origin/master
other does not merge from anything
pu merges from origin/pu
Notez que avec git1.8.3 (April 22d, 2013), vous avez une nouvelle façon de mettre l'accent sur la branche amont:
«
git branch --vv
» a appris à peindre le nom de la branche, il intègre avec une couleur différente (color.branch.upstream
, qui par défaut bleu).
C:\prog\git\git>git branch -vv
* master 118f60e [origin/master] Sync with maint
^^^^^^^^^^^^^
|
--- now in blue
cette partie n'est pas coloriée pour moi. Je suis sur Mac 1.8.4. Quelqu'un sait pourquoi? – dongshengcn
oh, tant pis. Je dois activer l'interface de couleur. – dongshengcn
@dongshengcn oui, j'aime régler 'git config color.ui toujours': https://gist.github.com/VonC/972690#file-gitconfig-L25 – VonC
Merci pour l'indice Jefromi
Avec la commande suivante, vous pouvez obtenir la branche de suivi à distance pour une branche spécifique.
git config --get branch.<branch>.merge
Pour modifier la branche de suivi à distance, vous pouvez simplement modifier cette valeur de configuration.
Note: ceci est une autre façon de git branch -vv
(déjà répondu ici)
et git branch -u
(Make an existing Git branch track a remote branch?)
C'est agréable pour obtenir le dépôt, mais il ne reçoit pas le nom de la branche (qui peut être différent – Casebash
@Casebash: C'est vrai, mais c'est une situation * très * rare, et si vous savez que vous y êtes, vous pouvez récupérer une autre variable de configuration. Cela a l'avantage (par rapport à 'git branch -vv') de ne pas avoir de sortie étrangère (c'est-à-dire qu'il est analysable par machine). Ce sera parfois utile. – Cascabel
Je vais ajouter pour le bénéfice d'autres personnes que la variable de configuration pour le nom de branche est 'branch.fees.merge' – Casebash