219 votes

Comment obtenir une liste de tous les fichiers qui ont été modifiés entre deux commits Git ?

En raison de la bureaucratie, j'ai besoin d'obtenir une liste de tous les fichiers modifiés dans mon référentiel pour un rapport (j'ai commencé avec le code source existant).

Que dois-je faire pour obtenir cette liste ?

63 votes

"à cause de la bureaucratie" xD

3voto

Kurapika Points 544

Avec git show vous pouvez obtenir un résultat similaire. Pour regarder le commit (comme il apparaît sur git log view) avec la liste des fichiers inclus dans, use :

git show --name-only [commit-id_A]^..[commit-id_B]

[commit-id_A] est l'engagement initial et [commit-id_B] est le dernier commit que vous voulez montrer.

Une attention particulière con ^ symbole. Si vous ne le mettez pas, l'information commit-id_A ne sera pas déployée.

3voto

Trying2Learn Points 11

La liste des modifications non échelonnées peut être obtenue par la méthode suivante git status et le grep comme ci-dessous. Quelque chose comme git status -s | grep M :

root@user-ubuntu:~/project-repo-directory# git status -s | grep '^ M'
 M src/.../file1.js
 M src/.../file2.js
 M src/.../file3.js
 ....

0voto

Saurabh Pal Points 79

Si vous voulez vérifier les fichiers modifiés, vous devez prendre en compte de nombreuses petites choses comme le meilleur moyen d'utiliser , Par exemple, si vous voulez vérifier quels fichiers ont été modifiés, tapez simplement

git status -- il montrera les fichiers avec des changements

ensuite, si vous voulez savoir quelles modifications doivent être apportées, vous pouvez les vérifier de différentes manières,

git diff -- montrera tous les changements dans tous les fichiers

c'est bon seulement quand un seul fichier est modifié

et si vous voulez vérifier un fichier particulier, utilisez

git diff

0voto

ADV-IT Points 71

La façon la plus simple d'obtenir la liste des fichiers modifiés et de la sauvegarder dans un fichier texte est la suivante :

git diff --name-only HEAD^ > modified_files.txt

0voto

George Ts. Points 21

Voici quelques filtres qui fonctionnent pour moi dans les actions GitHub en fonction du type (pull_request ou merge to master) :

git --no-pager diff --name-only --diff-filter=ACMRT ${{github.event.pull_request.base.sha}} ${{ github.event.pull_request.head.sha }}

git --no-pager diff --name-only --diff-filter=ACMRT ${{github.event.pull_request.base.sha}} ${{github.sha}}

git log -m -1 --name-only --pretty="format:" ${{ github.sha }}

Essayez-les et voyez lequel répond à vos besoins.

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