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 ?

220voto

alex Points 186293

Vous pouvez utiliser un gamme pour le faire.

git log master..

Si vous avez vérifié votre my_experiment branche. Cela permettra de comparer où master est à à HEAD (la pointe de my_experiment ).

17voto

VonC Points 414372

Note : si vous limitez ce journal aux n derniers commits (les 3 derniers commits par exemple, git log -3), assurez-vous de mettre un espace entre 'n' et votre branche :

git log -3 master..

Avant Git 2.1 (août 2014), cette erreur : git log -3master.. vous montrerait en fait les 3 derniers commits de la branche courante (ici my_experiment ), en ignorant le master (ce qui signifie que si my_experiment ne contient qu'un seul commit, 3 seraient encore listés, dont 2 provenant de master )

Voir commettre e3fa568 par Junio C Hamano ( gitster ) :

révision : analyser " git log -<count> " plus attentivement

Cette ligne de commande mal saisie ignore simplement " master "et finit par montrer deux commits à partir de l'actuel HEAD :

$ git log -2master

parce que nous alimentons " 2master " à atoi() sans s'assurer que la chaîne entière est analysée comme un entier.

Utilisez le strtol_i() à la place de la fonction d'aide.

9voto

cforbish Points 3171

El git merge-base peut être utilisée pour trouver un ancêtre commun. Ainsi, si mon_expériment n'a pas encore été fusionné dans master et que mon_expériment a été créé à partir de master, vous pouvez.. :

git log --oneline `git merge-base my_experiment master`..my_experiment

3voto

Je pense qu'une option pour vos besoins est git log --oneline --decorate . Cela vous permet de connaître le commit vérifié, et les commits supérieurs pour chaque branche que vous avez dans votre story line. En faisant cela, vous avez une bonne vue sur la structure de votre repo et les commits associés à une branche spécifique. Je pense que la lecture este pourrait aider.

2voto

Manoj Rana Points 301

Vous ne pouvez utiliser que git log --oneline

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