web-dev-qa-db-fra.com

Afficher les modifications apportées à un fichier spécifique à l'aide de git

Je sais que je peux utiliser la commande git diff pour vérifier les modifications, mais si j'ai bien compris, elle est basée sur des répertoires. Cela signifie qu'il donne toutes les modifications de tous les fichiers du répertoire en cours.

Comment puis-je vérifier uniquement les modifications d'un fichier spécifique? Dites, j'ai modifié les fichiers file_1.rb, file_2.rb, ..., file_N.rb, mais je suis seulement intéressé par les modifications dans le fichier file_2.rb. Comment puis-je vérifier ces modifications (avant de valider)?

392
Mellon

Utilisez une commande comme:

_git diff file_2.rb
_

Reportez-vous à la _git diff_ documentation pour obtenir des informations complètes sur les types de problèmes pour lesquels vous pouvez obtenir des différences.

Normalement, _git diff_ affiche seul tous les changements dans le référentiel entier (pas uniquement le répertoire en cours).

545
Greg Hewgill

Vous pouvez utiliser gitk [filename] pour voir le journal des modifications

77
da Rocha Pires

Une autre méthode (mentionnée dans this SO answer ) conservera l'historique dans le terminal et vous donnera un historique très détaillé du fichier lui-même:

git log --follow -p -- file

Cela affichera l’historique complet du fichier (y compris l’histoire au-delà des renommés et avec des différences pour chaque modification).

En d'autres termes, si le fichier nommé bar s'appelait autrefois foo, alors git log -p bar (sans l'option --follow) n'affichera que l'historique du fichier jusqu'au moment où il a été renommé. l'histoire du fichier quand il était connu comme foo. L'utilisation de git log --follow -p bar affichera l'historique complet du fichier, y compris les modifications apportées au fichier lorsqu'il s'appelait foo.

72
AJ Zane

Vous pouvez utiliser la commande ci-dessous pour voir qui a changé quoi dans un fichier.

git blame <filename>

17
Vineet

Vous pouvez exécuter

git status -s

Cela montrera le nom du fichier modifié, puis en copiant le chemin du fichier intéressé, vous pourrez voir les changements en utilisant git diff

git diff <filepath + filename>
14
Tejas Pawar

tu peux aussi essayer

git show <filename>

Pour les commits, git show affichera le message du journal et les différences textuelles (entre votre fichier et la version validée du fichier).

Vous pouvez vérifier git show Documentation pour plus d'informations.

5
LuisBento

pour répertorier uniquement les détails des validations pour des modifications de fichiers spécifiques,

git log --follow file_1.rb

pour lister la différence entre les différents commits pour le même fichier,

git log -p file_1.rb

ne lister que commit et son message,

git log --follow --oneline file_1.rb

Ou si vous préférez utiliser votre propre outil graphique:

git difftool ./filepath

Vous pouvez définir votre outil graphique guidé par cet article: Comment afficher une sortie 'git diff' avec un programme de diff visuel?

0
ElLocoCocoLoco

Totalement d'accord avec @Greg Hewgill

Et si votre chemin contient des espaces, essayez d’ajouter avec apostrophe ' ou `

git diff 'MyProject/Mon dossier/Mon sous-dossier/fichier_2.rb'

0
MrMins