web-dev-qa-db-fra.com

Qu'est-ce que cela signifie lorsque Git diff affiche des changements de mode?

J'essaie d'afficher les modifications pour un seul fichier non organisé.

J'utilise d'abord git status pour afficher toutes les modifications non mises en scène puis par exemple:

git diff AndroidManifest.xml

Mais j'obtiens cette sortie:

diff --git a/AndroidManifest.xml b/AndroidManifest.xml  
old mode 100755  
new mode 100644

Qu'est-ce que cela signifie et comment puis-je afficher les modifications pour un fichier spécifique?

41
pedja

Très probablement, le contenu de ce fichier n'a pas changé, seul le bit exécutable a été effacé. Essayez de modifier le fichier en ajoutant, par exemple, une ligne vide et voyez ce que git diff les sorties.

Outre le contenu du fichier, Git enregistre également l'état du bit exécutable pour chaque fichier. Il est logique sur les systèmes Linux si vous souhaitez que les scripts soient exécutables juste après le paiement. Voir également les deux questions connexes suivantes:

Comment faire pour que Git ignore les modifications du mode fichier (chmod)?

Comment puis-je supprimer des fichiers disant "ancien mode 100755 nouveau mode 100644" des modifications non mises en scène dans Git?

28
krlmlr

Cela signifie que le mode de fichier est passé de 755 à 644, mais le contenu n'a pas été modifié.

git diff est exactement ce que vous recherchez - il montre les changements des fichiers non stadés au dernier commit. git diff --cached est pour les fichiers intermédiaires.

18
Polygnome