183 votes

Comment obtenir l'historique des commit pour une seule branche ?

Disons que j'ai créé une nouvelle branche my_experiment de master et a fait plusieurs changements dans my_experiment . Si je fais un git log lorsque le my_experiment je vois les modifications faites dans cette branche, mais aussi celles faites dans la branche master avant le my_experiments a été créée.

Je trouverais très utile de voir l'historique de toutes les modifications apportées à l'arborescence de la base de données. my_experiments jusqu'à ce qu'il atteigne la création de cette branche - en fait, un véritable historique de cette branche. Autrement, il n'est pas clair pour moi, en regardant le journal, si les commits étaient sur la branche my_experiments ou non.

Existe-t-il un moyen de faire cela avec Git ?

0voto

menssana Points 330

Je sais qu'il est très tard pour cette fois-ci... Mais voici un oneliner (pas si simple) pour obtenir ce que vous recherchiez :

git show-branch --all 2>/dev/null | grep -E "\[$(git branch | grep -E '^\*' | awk '{ printf $2 }')" | tail -n+2 | sed -E "s/^[^\[]*?\[/[/"
  • Nous listons les commits avec le nom de la branche et les positions relatives aux états actuels de la branche avec git show-branch (envoi des avertissements à /dev/null ).
  • Ensuite, nous ne gardons que ceux qui ont le nom de notre branche à l'intérieur de la parenthèse avec grep -E "\[$BRANCH_NAME" .
  • Où le réel $BRANCH_NAME est obtenu avec git branch | grep -E '^\*' | awk '{ printf $2 }' (la branche avec une étoile, répercutée sans cette étoile).
  • A partir de nos résultats, nous supprimons la ligne redondante au début avec tail -n+2 .
  • Et ensuite, nous nettoyons la sortie en supprimant tout ce qui précède [$BRANCH_NAME] con sed -E "s/^[^\[]*?\[/[/" .

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