Disons que j'ai créé une nouvelle branche à my_experiment
partir de master
et effectué plusieurs engagements my_experiment
. Si je fais un git log
when on my_experiment
, je vois les commits faits sur cette branche, mais aussi les commits faits master
avant la création de la my_experiments
branche.
Je trouverais très utile de voir l'historique de tous les engagements dans la my_experiments
branche jusqu'à ce qu'il atteigne la création de cette branche - effectivement une véritable histoire de cette branche uniquement. Sinon, lorsque je regarde dans le journal, je ne sais pas si les commits étaient sur la my_experiments
branche ou non.
Y a-t-il un moyen de faire cela avec Git?
git log master..
dit à Git?master..
) partie.La
git merge-base
commande peut être utilisée pour trouver un ancêtre commun. Donc, si my_experiment n'a pas encore été fusionné dans master et que my_experiment a été créé à partir de master, vous pouvez:la source
git log --oneline `git merge-base my_experiment master`^..my_experiment --first-parent
Remarque: si vous limitez ce journal au dernier n commit (les 3 derniers commits par exemple, git log -3), assurez-vous de mettre un espace entre 'n' et votre branche:
Avant Git 2.1 (août 2014), cette erreur:
git log -3master..
vous montrerait en fait les 3 derniers commits de la branche actuelle (icimy_experiment
), en ignorant lamaster
limite (ce qui signifie que si ellemy_experiment
ne contient qu'un seul commit, 3 seraient toujours listés, 2 d'entre eux à partir demaster
)Voir commit e3fa568 par Junio C Hamano (
gitster
) :révision: analyser
git log -<count>
plus attentivement " "la source
Vous ne pouvez utiliser que
git log --oneline
la source
Je pense qu'une option pour vos besoins est
git log --online --decorate
. Cela vous permet de connaître le commit vérifié et les meilleurs commits pour chaque branche que vous avez dans votre scénario. En faisant cela, vous avez une belle vue sur la structure de votre repo et les commits associés à une branche spécifique. Je pense que lire ceci pourrait aider.la source
Je sais qu'il est très tard pour celui-ci ... Mais voici un oneliner (pas si simple) pour obtenir ce que vous cherchiez:
git show-branch
(en envoyant les avertissements à/dev/null
).grep -E "\[$BRANCH_NAME"
.$BRANCH_NAME
est obtenu avecgit branch | grep -E '^\*' | awk '{ printf $2 }'
(la branche avec une étoile, écho sans cette étoile).tail -n+2
.[$BRANCH_NAME]
avecsed -E "s/^[^\[]*?\[/[/"
.la source