Si vous regardez la page de l'homme pour git-rev-parse
, vous verrez que la syntaxe suivante est décrite:
@{upstream}
, par exemple master@{upstream}
, @{u}
Le suffixe @{upstream}
à un nom de branche (forme courte @{u}
) fait référence à la branche sur laquelle la branche spécifiée par le nom de la branche est configurée pour se construire dessus. Un nom de branche manquant par défaut à celui en cours.
Ainsi, pour trouver l'amont de la branche master
, vous feriez:
git rev-parse --abbrev-ref master@{upstream}
# => origin/master
Pour afficher les informations pour chaque branche, vous pourriez faire quelque chose comme:
while read branch; do
upstream=$(git rev-parse --abbrev-ref $branch@{upstream} 2>/dev/null)
if [[ $? == 0 ]]; then
echo $branch suit $upstream
else
echo $branch n'a pas d'amont configuré
fi
done < <(git for-each-ref --format='%(refname:short)' refs/heads/*)
# Sortie:
# master suit origin/master
# ...
C'est plus propre que d'analyser manuellement les références et la configuration.