Supposons que votre historique de validation git ressemble à ceci:
A---B---C---D---E---F master \ / X---Y---Z topic
Est-il possible d’avoir seulement les commits sur master, AF? En d’autres termes, si le commit était sur une twig fusionnée, je ne veux pas le montrer.
git log
a l’option --first-parent
, vous n’aurez donc pas d’historique de topic
.
Lorsqu’ils sont fusionnés à partir de master
, les commits principaux sont les premiers parents dans la fusion. Le journal Git permet d’afficher uniquement les commits avec –first-parent, de sorte que vous obtenez le bon contenu.
Il y a une autre manière générale de procéder à ce sujet, qui ne repose pas sur --first-parent
qui sera utile dans certaines situations .. en utilisant les filtres d’exclusion de twig
git log origin/topic ^origin/master
Ceci vous donnera un journal d’ origin/topic
avec tous les commits d’ origin/master
supprimés.
Vous pouvez également append --no-merges
qui cachera les commits de fusion que vous pouvez ou non vouloir.
Une autre astuce consiste à utiliser shortlog
au lieu de log
qui vous donnera plus d’un résumé abrégé qui peut être utile pour les notes de publication ou la communication de quoi dans une twig.
Mettre à jour
Après avoir relu ceci, vous voudriez presque l’inverse de ce que j’ai posté; mais cela finirait par exclure tout ce qui est sur le maître et le foo ( git log origin/master ^origin/foo
). Cependant, vous pouvez également obtenir ce que vous demandez (cachez tous les commits qui font partie des fusions) avec git log origin/master --no-merges
Est-ce que ça ne marche pas?
git log master git log --stat master