web-dev-qa-db-fra.com

Comment puis-je voir ce qui a changé dans un fichier avant de m'engager dans git?

J'ai remarqué qu'en travaillant sur un ou deux billets, si je m'éloigne, je ne sais pas trop sur quoi j'ai travaillé, ce qui a changé, etc.

Existe-t-il un moyen de voir les modifications apportées à un fichier donné avant que git add, puis git commit?

294
Angela

Vous recherchez git diff . Selon votre situation exacte, il existe trois façons utiles de l'utiliser:

# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]

Cela fonctionnera de manière récursive sur les répertoires, et si aucun chemin n'est donné, il affiche toutes les modifications.

450
Cascabel

Utilisez git-diff :

git diff yourfile
27
Felix Kling

Pour moi, git add -p est le moyen le plus utile (et destiné par les développeurs de git?) De passer en revue toutes les modifications non mises en scène (il affiche le diff pour chaque fichier), de choisir un bon ensemble de modifications qui devrait accompagner un commit. ont tous mis en scène, puis utilisez git commit et répétez l'opération pour le prochain commit. Ensuite, vous pouvez faire en sorte que chaque commit soit un ensemble de modifications utile ou significatif même s’ils ont eu lieu dans différents fichiers. Je suggérerais également de créer une nouvelle branche pour chaque ticket ou activité similaire, et de basculer entre eux en utilisant checkout (peut-être en utilisant git stash si vous ne voulez pas vous engager avant de changer), bien que si vous effectuez de nombreux changements rapides, cela peut être un problème . N'oubliez pas de fusionner souvent.

7
Reed Hedges

git diff filename

6
elmt

Rappelez-vous que vous validez modifications , pas des fichiers.

Pour cette raison, il est très rare que je n'utilise pas git add -p (ou l'équivalent magit) pour ajouter mes modifications.

4
Dustin

git diff

Affiche les modifications entre l'arborescence de travail et l'index ou une arborescence, les modifications entre l'index et une arborescence, les modifications entre deux arborescences ou entre deux fichiers sur le disque.

4
miku
git diff <path>/filename

chemin peut être votre chemin système complet jusqu'au fichier ou 
si vous êtes dans le projet, vous collez également le chemin du fichier modifié
pour les fichiers modifiés avec chemin d'accès: git status

2
HariKishore

Eh bien, mon cas quand vous ne voulez pas vous soucier de la liste de fichiers. Il suffit de leur montrer tout.

Lorsque vous avez déjà exécuté git add avec votre liste de fichiers:

$ git diff --cached $(git diff --cached --name-only)

La même chose peut être utilisée pour les fichiers non ajoutés mais sans l'option --cached.

$ git diff $(git diff --name-only)

Alias ​​de commande Git pour l'option "en cache":

$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'
1
Kirby

Accédez à votre dépôt Git respectif, puis exécutez la commande ci-dessous:

nom de fichier git diff

Il ouvrira le fichier avec les modifications marquées, appuyez sur la touche Retour/Entrée pour faire défiler le fichier.

P.S. le nom de fichier doit inclure le chemin complet du fichier, sinon vous pouvez exécuter sans le chemin complet en allant dans le répertoire/dossier respectif du fichier

0
Yash Bansal

Vous pouvez également utiliser un éditeur de texte compatible avec Git. Ils affichent les couleurs des lignes modifiées, une autre couleur pour les lignes ajoutées, une autre couleur pour les lignes supprimées, etc.

Un bon éditeur de texte qui fait cela est Atom 1.0 de GitHub .

0
AskYous