Comment obtenir l’historique des validations pour une seule twig?

Disons que j’ai créé une nouvelle twig my_experiment de master et fait plusieurs commits à my_experiment . Si je fais un git log dans my_experiment , je vois les commits faits dans cette twig, mais aussi les commits faits pour master avant la my_experiments twig my_experiments .

Je trouverais très utile de voir l’historique de tous les commits dans la twig my_experiments jusqu’à ce qu’elle my_experiments la création de cette twig – en fait, une véritable histoire de cette twig. Sinon, je ne my_experiments pas si le journal my_experiments si les commits se my_experiments ou non sur la twig my_experiments .

Y a-t-il un moyen de faire cela avec Git?

Vous pouvez utiliser une plage pour le faire.

 git log master.. 

Si vous avez extrait votre twig my_experiment . Cela comparera où master est à HEAD (la pointe de my_experiment ).

La commande git merge-base 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:

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

Remarque: si vous limitez ce journal au dernier n commit (par exemple, les 3 derniers commits, git log -3), veillez à placer un espace entre «n» et votre twig:

 git log -3 master.. 

Avant Git 2.1 (août 2014), cette erreur: git log -3master.. vous montrerait les 3 derniers commits de la twig en cours (ici my_experiment ), en ignorant la limite du master (si my_experiment ne contient qu’un seul commit, 3 être répertorié, 2 d’entre eux de master )

Voir commit e3fa568 par Junio ​​C Hamano ( gitster ) :

revision: parse ” git log - ” plus attentivement

Cette ligne de commande erronée ignore simplement ” master ” et finit par montrer deux commits du HEAD actuel:

 $ git log -2master 

parce que nous 2master2master ” à atoi() sans nous assurer que toute la chaîne est analysée comme un entier.

Utilisez plutôt la fonction d’assistance strtol_i() .

Je pense qu’une option pour vos besoins est git log --oneline --decorate . Cela vous permet de connaître le commit vérifié, et le top valide pour chaque twig que vous avez dans votre ligne d’histoires. Ce faisant, vous avez une bonne vue sur la structure de votre repo et les commits associés à une twig spécifique. Je pense que lire cela pourrait aider.