Git: Comment lister les commits sur cette twig mais pas sur les twigs fusionnées

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