web-dev-qa-db-de.com

git unter Windows zeigt ständig geänderte Dateien an, selbst für neu geklontes Repo

Ich habe Probleme mit meinem Git auf einer Windows-Maschine. Ich habe immer einige Git-Dateien, die in jedem Repo geändert werden. Die Dateien, die als geändert angezeigt werden, sind gleich. 

Wenn ich ein neues Repo klone und Tortoisegit zum Festschreiben benutze, sehe ich einige Dateien als modifiziert, selbst wenn ich nie eine einzige Datei im Repo berührt habe. "gitstatus" zeigt jedoch keine Änderungen

Jede Hilfe wird geschätzt. Vielen Dank

23
tazo

Prüfen Sie, ob die Änderungen lediglich Änderungen an den Dateiberechtigungen sind. Dies war der Grund in meinem Fall, dass sowohl TortoiseGit als auch Git Extensions unveränderte Dateien angezeigt haben. 

Verwenden Sie git config core.fileMode false, um ignorieren Sie chmod-Unterschiede (oder bearbeiten Sie direkt die Datei .git/config ).

Sie können dies auch als globale Konfiguration mit git config --global core.filemode false festlegen.

21
Juuso Ohtonen

Es ist ein Zeilenende-Problem. Stellen Sie dies auf Ihrem Windows-Rechner ein:

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

Keiner der vorgeschlagenen Korrekturen funktionierte für mich. Ich hatte jedoch Cygwin installiert und TortoiseGit hat bei der Installation seinen Pfad gefunden. Ich habe das Problem mit der Installation des offiziellen Git-Pakets gelöst und den Pfad in TortoiseGit geändert.

9
BoneGoat

Wenn Sie TortoiseGit mit Cygwin git ( nicht offiziell unterstützt ) verwenden, sollten Sie einige zusätzliche Installationsschritte ausführen:

  1. Wählen Sie den Ordner [CYGWIN-INSTALL-PATH]\bin-folder as git.exe aus.

  2. Konfigurieren Sie die Umgebungsvariable HOME in Windows, sodass Cygwin und TortoiseGit dasselbe Basisverzeichnis und dieselbe globale git-config verwenden. Verwenden Sie hier die normale Windows-Notation (z. B. C:\Users\USERNAME). Standardmäßig verwendet TortoiseGit das Windows-Basisverzeichnis, das sich normalerweise unter c:\Users befindet, und Cygwin verwendet seine eigenen Basisverzeichnisse, die sich unter [CYGWIN-INSTALL-PATH]\home befinden.

  3. Konfigurieren Sie AutoCrLf, dies ist erforderlich, da TortoiseGit und Cygwin Git unterschiedliche Standardeinstellungen haben. Der Standard in Cygwin Git ist true.

  4. Gehen Sie zu TortoiseGit, dem Abschnitt Advanced Settings, und setzen Sie CygwinHack auf true, um die Cygwin-Problemumgehungen zu aktivieren.

  5. Starten Sie neu.

Schritt # 4 ist entscheidend und hat das Problem für mich gelöst.

Referenz (siehe Cygwin Git Abschnitt): https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html

7
Gene Pavlovsky

Ich hatte gerade dieses Problem und für mich erwies sich der Fix als recht einfach.

Stellen Sie sicher, dass derzeit keine git-Prozesse ausgeführt werden, und löschen Sie dann .git\index.lock.

Danach wurde der geänderte Status meiner Dateien korrekt behandelt.

1
GlacialSpoon