45 votes

Comment savoir à quelle branche appartient un commit "git log" ?

Si je le fais git log Est-ce qu'il y a un paramètre que je pourrais spécifier pour être capable de dire à partir de la sortie à quelle branche appartient chaque commit ?

Edit : pour clarifier, je comprends qu'un commit peut faire partie de deux branches (par exemple). Ce que je veux, c'est obtenir la branche la plus récente dans laquelle se trouve le commit. log appartient à. Donc, si j'ai créé une branche appelée foo de master . Il appartiendrait aux deux branches, mais je veux obtenir foo .

78voto

Mark Longair Points 93104

Je pense que ce que vous cherchez est la commande très utile :

git branch -a --contains <SHA1sum-of-commit>

... qui vous indiquera toutes les branches (locales et de suivi à distance) qui contiennent ce commit.

Malheureusement, je ne pense pas qu'il y ait un git log qui ne fait que produire ceci pour chaque livraison. Utilisation de --all --source est proche, mais n'affichera que un des branches pour chaque livraison. Cependant, si vous cliquez sur un commit dans gitk --all vous verrez qu'elle liste toutes les branches sur lesquelles se trouve le commit.

Il y a une partie de votre question qui n'est pas très bien définie, cependant - vous demandez :

Ce que je veux, c'est obtenir la branche la plus récente à laquelle appartient le commit dans le journal.

Ce que vous entendez par là n'est pas clair pour moi - la "branche la plus récente" pourrait être (a) la ref la plus récemment créée (b) la ref la plus récemment modifiée (c) la branche avec le commit le plus récent dessus, etc. etc. Il y a probablement une meilleure façon de définir ce que vous voulez en termes de graphique de commit.

25voto

Luwe Points 1989

Avec git log vous obtenez déjà tous les commits de la branche actuelle sur laquelle vous vous trouvez.

Si vous voulez voir les commits des branches fusionnées, vous pouvez utiliser

$ git log --pretty=oneline --graph

Pour créer un arbre de log et voir de quelles branches fusionnées découle un commit.

--graph fera l'arbre de commit et --pretty=oneline fera une visualisation d'une ligne pour chaque commit

Pour ajouter des branches (en tant que refs) au journal :

$ git log --all --source --pretty=oneline --graph

Pour afficher les branches avec les commits :

$ git show-branch

9voto

holygeek Points 6580

Avez-vous essayé l'option "--decorate" de git log ?

J'ai cet alias dans mon .gitconfig :

[alias]
        k = log --graph --oneline --abbrev-commit  --decorate

Il montre un graphique similaire à celui montré par gitk, avec les noms de branches "décorés" à côté du commit le plus récent dans la branche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X