web-dev-qa-db-fra.com

git sous windows affiche tout le temps les fichiers modifiés, même pour les dépôts clonés

J'ai des problèmes avec mon git sur une machine Windows. J'ai toujours des fichiers git modifiés dans chaque dépôt, les fichiers affichés comme modifiés sont les mêmes. 

Si je clone un nouveau référentiel et utilise tortoisegit pour valider, certains fichiers sont modifiés, même si je n'ai jamais touché un seul fichier dans le référentiel. "gitstatus" ne montre aucune modification cependant

Toute aide est appréciée. Merci

23
tazo

Vérifiez si les modifications ne sont que des modifications des autorisations de fichiers. C’est la raison dans mon cas, TortoiseGit et Git Extensions affichaient des fichiers non modifiés. 

Utilisez git config core.fileMode false pour ignorer les différences de chmod (ou éditez directement le fichier .git/config fichier).

Vous pouvez aussi vouloir définir ceci comme configuration globale avec git config --global core.filemode false.

21
Juuso Ohtonen

C'est un problème de fin de ligne. Définissez ceci sur votre machine Windows:

git config --global core.autocrlf true
15
Ruslan Osipov

Aucun des correctifs proposés n'a fonctionné pour moi. Cependant, Cygwin a été installé et TortoiseGit a repris son chemin une fois installé. Je l'ai résolu en installant le paquet officiel Git et en changeant le chemin dans TortoiseGit.

9
BoneGoat

Si vous utilisez TortoiseGit avec Cygwin git ( non officiellement pris en charge ), plusieurs étapes de configuration supplémentaires doivent être effectuées:

  1. Sélectionnez le dossier [CYGWIN-INSTALL-PATH]\bin-folder comme git.exe.

  2. Configurez la variable d'environnement HOME sous Windows, de sorte que Cygwin et TortoiseGit utilisent le même répertoire de base et le même git-config global. Utilisez la notation Windows normale ici (par exemple, C:\Users\USERNAME). Par défaut, TortoiseGit utilise le répertoire de base Windows qui se trouve normalement sous c:\Users et Cygwin utilise ses propres répertoires de base, situés sous [CYGWIN-INSTALL-PATH]\home.

  3. Configurez AutoCrLf, ceci est nécessaire car TortoiseGit et Cygwin Git ont des valeurs par défaut différentes. La valeur par défaut dans Cygwin Git est true.

  4. Allez à TortoiseGit dans la section appelée Advanced Settings et réglez CygwinHack sur true afin d'activer les solutions de contournement de cygwin.

  5. Redémarrer.

L’étape 4 est cruciale et résout le problème pour moi.

Référence (voir Cygwin Git section): https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html

7
Gene Pavlovsky

Je viens d'avoir ce problème et pour moi le correctif s'est avéré être assez simple.

Assurez-vous qu'aucun processus git n'est en cours d'exécution, puis supprimez .git\index.lock.

Après cela, l'état modifié de mes fichiers a été traité correctement.

1
GlacialSpoon