Wie kann man dafür sorgen, dass Git Änderungen ignoriert?
Frage
Ich bin mir nicht ganz sicher, was hier vor sich geht, aber manchmal ändert eine bestimmte Datei in meinem Repository die Groß-/Kleinschreibung ihres Namens.z.B.,:
Vor: File.h
nach: file.h
Es ist mir eigentlich egal, warum das passiert, aber das führt dazu, dass Git denkt, es sei eine neue Datei, und dann muss ich den Dateinamen wieder ändern.Kann man Git einfach dazu bringen, Groß-/Kleinschreibungsänderungen zu ignorieren?
[bearbeiten]Ich vermute, dass Visual Studio etwas Seltsames mit dieser bestimmten Datei macht, da es am häufigsten zu passieren scheint, wenn ich sie nach Änderungen öffne und speichere.Ich habe jedoch keine Möglichkeit, Fehler in VS zu beheben, aber ich hoffe, Git sollte etwas leistungsfähiger sein.
Lösung
Seit Version 1.5.6 gibt es eine ignorecase
Option verfügbar in der [core]
Abschnitt von .git/config
z.B.hinzufügen ignorecase = true
Um es für nur ein Repo zu ändern, führen Sie in diesem Ordner Folgendes aus:
git config core.ignorecase true
Um es global zu ändern:
git config --global core.ignorecase true
Andere Tipps
In der Git-Version 1.6.1.9 für Windows habe ich festgestellt, dass „ignorecase=true“ in der Konfiguration bereits standardmäßig festgelegt war.
Mit diesem Befehl können Sie git zwingen, die Datei nur in Groß-/Kleinschreibung umzubenennen:
git mv --cached name.txt NAME.TXT
Beachten Sie, dass dadurch die Groß-/Kleinschreibung der Datei in Ihrer ausgecheckten Kopie auf einer Windows-Partition nicht geändert wird, Git jedoch die Groß-/Kleinschreibungsänderung aufzeichnet und Sie diese Änderung festschreiben können.Zukünftige Kassen werden das neue Gehäuse verwenden.
Die in der Frage beschriebene Situation tritt jetzt erneut unter Mac OS X, Git-Version >= 1.7.4 (glaube ich) auf.Die Lösung besteht darin, Ihr „ignorecase=false“ zu setzen und die kleingeschriebenen Dateien (die Git auf diese Weise geändert hat, nicht Visual Studio) von Hand wieder in ihren UsualCase umzubenennen (d. h.'mv meinname MeinName').
Mehr Info Hier.