git -> afficher la liste des fichiers modifiés lors des commits récents dans un répertoire spécifique

Réponses:

164

Celui-ci est plus similaire à la commande svn car il montre l'état du fichier: Ajouté (A), Copié (C), Supprimé (D), Modifié (M), Renommé (R) et autres.

git log --name-status -10 path/to/dir

Il vaut la peine de consulter la page de documentation complète pour git log. Là, vous apprendrez que cela -10fait référence aux 10 derniers commits et -pvous donnera le patch complet, parmi une variété d'autres goodies.

Htanata
la source
12
Par souci d'exhaustivité: l'ensemble d'options similaires couramment utilisé est -p(patch complet), --stat(nombre de lignes modifiées), --numstat(comme --statmais lisible par machine) --name-status, et --name-only(juste les noms de fichiers).
Cascabel
3
Pour quiconque vient à cette question sans le savoir déjà, le -10 fait référence au nombre de commits que vous souhaitez afficher. Si vous avez besoin d'une liste complète des validations, essayez de rendre le nombre anormalement élevé, par exemple -1000 ou plus selon vos besoins.
Julian Soro
Est-il également possible de consulter l'historique depuis un commit ou une étiquette spécifique? Il y a des centaines de commits, alors j'essaie de compter ça ...
MrFox
2
@MrFox git log <from revision>.., par exemple git log abc123... En savoir plus sur le format de plage ici: kernel.org/pub/software/scm/git/docs/…
htanata
37

Pour afficher tous les fichiers modifiés au cours des 10 dernières validations, sans aucune information de validation, procédez comme suit:

git diff --name-only HEAD~10..HEAD yourdir
dbn
la source
3
Solution parfaite pour rouvrir des fichiers dans votre éditeur.
cdosborn
1
Cette solution répertorie uniquement les chemins de fichiers, sans commentaires, ce qui est très apprécié par rapport à la réponse acceptée. Si tout ce que vous voulez, c'est une liste des fichiers qui ont changé dans les validations spécifiées, et cette solution fait exactement cela .
Big Rich le
6

Essayer de faire

git log -p -10 yourdir/

Cela devrait marcher.

bleu112
la source
1
L'OP a demandé une liste des fichiers modifiés, pas le correctif complet.
Cascabel
1
Si vous voulez que la liste des fichiers change, vous pouvez faire --stat à la place de -p
blue112
1

Pour afficher tous les commitde votre branche (récents et anciens), vous devez compter le nombre de commits dans la branche

git rev-list --count branch_name

Une fois que vous avez obtenu tout le nombre de validations, vous pouvez exécuter

git log --name-status -countNumber /path
Sayan Biswas
la source
Et on peut simplifier la vue en ajoutant l' --pretty=onelineoption à la git logcommande ci-dessus. L'ajout d'une | sort | uniqcommande vous aidera à voir le marquage de l'état A / C / D / M / R selon la réponse de
htanata