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?
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.
Utilisez git-diff
:
git diff yourfile
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.
git diff filename
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.
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.
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
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)'
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
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 .