J'ai un scénario dans lequel il y a plusieurs branches de suivi à distance dans mon référentiel local que je dois synchroniser. Notre modèle de workflow est:
J'ai remarqué que "git status" ne m'affiche pas sur quelle branche ma branche locale est basée sauf si quelque chose a changé; c'est-à-dire que des modifications locales non validées ou une extraction récente mettent ma branche locale en retard. Existe-t-il un moyen de savoir sur quelle branche ma branche locale est basée sans avoir à changer les choses? Quelque chose comme "git status -showparentbranch" ou une autre commande qui le montrerait. Parfois, je rencontre ce besoin mais je ne sais pas encore comment le satisfaire.
essaye ça:
git log --graph --decorate
Git ne suit pas les branches par lesquelles un commit a été passé. Il n'y a aucun moyen de le savoir. Si les commits se sont produits sur votre dépôt, vous pouvez inspecter le reflog, mais c'est à peu près tout. Jetez un oeil à l'explication du DAG dans le livre Pro Git - lisez également sur reflog là-dedans.
Vous pouvez également mieux visualiser l'historique avec gitk --all
ou git log --graph --decorate
J'espère que cela t'aides.
git branch -vv
volonté:
... à partir de cela, vous pourrez déterminer la branche distante de la branche active actuelle, et plus encore.
Si vous avez beaucoup de succursales locales, la liste peut être très longue. Utilisation git branch -vv | grep SOMEWORD
pour limiter la sortie aux seules branches contenant SOMEWORD. Si vous pensez à un mot unique à votre branche, vous obtiendrez le meilleur filtre (un seul résultat).
Vous obtiendrez également des données supplémentaires dans la sortie, à savoir le numéro (SHA1) et le message du dernier commit. Le filtre grep s'appliquera à ceux-ci. Je n'ai pas pu trouver un moyen de l'exclure.
Depuis Git documentation de branche :
-v
-vv
--verbeux
En mode liste, affichez sha1 et validez la ligne d'objet pour chaque tête, ainsi que la relation avec la branche en amont (le cas échéant). Si donné deux fois, imprimez également le nom de la branche en amont (voir aussi git remote show).
(Sur la base de votre commentaire, oui, il semble que la "bonne" question poserait sur la branche "distante" plutôt que sur la branche "parent". Mais c'est ce que j'ai cherché aussi! :))
Vous pouvez également essayer ceci:
git rev-parse --abbrev-ref --symbolic-full-name @{u}
Et en utilisant cet alias dans votre fichier .gitconfig:
[alias]
showparentbranch = rev-parse --abbrev-ref --symbolic-full-name @{u}
Vous pouvez alors simplement appeler:
git showparentbranch
Testé sur git version 2.10.2.windows.1