Commandes Linux : git diff

GIT DIFF

 

Afficher les différences entre la copie de travail courante et le dernier commit :

Les différences retournées n’ont pas encore été ajoutées à l’index. Ce sont les modifications de l’espace de travail qui seront ajoutées à l’index avec la commande git add.

git diff [filename]

ex :

$ git diff longueur.sh
diff --git a/longueur.sh b/longueur.sh
index 20194fe..20415af 100644
--- a/longueur.sh
+++ b/longueur.sh
@@ -2,7 +2,9 @@
 
 import sys
 
-def taille(s) : return 1 + taille(s[1:]) if s else 0
+def taille(s) :
+    if not s : return 0
+    return 1 + taille(s[1:])
 
 for x in sys.argv[1:] :
     print(taille(x))

Pour appliquer un patch généré avec git format-patch, voir la commande git am filename.patch.
Pour appliquer un patch généré avec git diff, voir la commande git apply filename.patch (option --check pour simulation).
 

Afficher les modifications depuis le dernier commit :

git diff HEAD

 

Affiches les différences entre le staging area (modifications indexées en cache) et le dernier commit :

Ici les modifications ont été validées avec git add mais n’ont pas encore été commitées.

git diff --cached [filename]

 

Afficher les modifications entre deux commits :

git diff commit1(-) commit2(+) [filename]

ex :

$ git diff 159f756 089e7b1 longueur.sh
diff --git a/longueur.sh b/longueur.sh
index 20415af..9f87067 100644
--- a/longueur.sh
+++ b/longueur.sh
@@ -2,9 +2,7 @@
 
 import sys
 
-def taille(s) :
-    if not s : return 0
-    return 1 + taille(s[1:])
+def taille(s) : return s and 1 + taille(s[1:]) or 0
 
 for x in sys.argv[1:] :
     print(taille(x))

 

Afficher les erreurs d’espaces sur les fichiers modifiés (modifications non indexées) :

git diff --check [filename]

ex :

$ git diff --check
test.txt:1: trailing whitespace.
+ajout  d'une ligne     de texte 
test.txt:2: trailing whitespace.
+ et d'une  nouvelle  
test.txt:3: new blank line at EOF.

 

Retourner seulement des stats différentielles (insertions, délétions) :

git diff --stat
git diff --numstat

Afficher uniquement le nom des fichiers modifiés et le statut de la modification apportée :

git diff --name-status

Pour n’afficher que le nom des fichiers modifiés, utiliser l’option --name-only)
Les différents statuts possibles sont :

    A: addition of a file
    C: copy of a file into a new one
    D: deletion of a file
    M: modification of the contents or mode of a file
    R: renaming of a file
    T: change in the type of the file
    U: file is unmerged (you must complete the merge before it can be committed)
    X: “unknown” change type (most probably a bug, please report it)

On peut également afficher des différences avec positions relatives :

$ git diff HEAD HEAD~2

Ou entre deux branches :

$ git diff testing master

Ou entre une branche locale et une branche distante :

$ git fetch
$ git diff master origin/master

 

Fermer le menu
%d blogueurs aiment cette page :