J'ai un commit c. Je veux obtenir le jeu de modifications de cette méta-information exacte commit c + et aucune autre. Y a-t-il un moyen plus simple que git log -p c^..c
de le faire?
La réponse de Michal Trybus est la meilleure pour la simplicité. Mais si vous ne voulez pas la différence dans votre sortie, vous pouvez toujours faire quelque chose comme:
git log -1 -U c
Cela vous donnera le journal de validation, puis vous aurez un contrôle total sur toutes les options de journalisation git à des fins d'automatisation. Dans votre cas, vous avez dit que vous vouliez l'ensemble de modifications. Le moyen le plus lisible par l'homme d'y parvenir serait:
git log --name-status --diff-filter="[A|C|D|M|R|T]" -1 -U c
Ou, si vous utilisez une version git supérieure à 1.8.X, ce serait:
git log --name-status --diff-filter="ACDMRT" -1 -U c
Cela vous donnera des résultats similaires à:
commit {c}
Author: zedoo <[email protected]>
Date: Thu Aug 2 {time-stamp}
{short description}
D zedoo/foo.py
A zedoo/bar.py
Bien sûr, vous pouvez filtrer les événements qui vous conviennent et formater le retour comme vous le souhaitez via les commandes git-log traditionnelles qui sont bien documentées ici .
git show --name-only <sha1>
!git show -s <commit>
.-1
-on? Où est-il documenté?git help log
sous la section "Limitation de validation". Ou voir git-scm.com/book/en/v2/…-<number>
limite le nombre de commits à sortir.git log -p c -1
fait juste cela.la source
-n 1
ou--max-number=1
et est documenté ici .Vous pouvez utiliser pour filtrer les modifications par description du commit:
où
git log --grep='part_of_description'
sélectionnez les commits qui contiennent 'part_of_description' et-p
affichez le changeset de chaque commitla source