Wie kann man Git dazu bringen, Änderungen für den Fall zu ignorieren?

106

Ich bin mir nicht sicher, was hier vor sich geht, aber manchmal ändert eine bestimmte Datei in meinem Repository den Fall ihres Namens. z.B,:

Vor: File.h

nach dem: file.h

Es ist mir eigentlich egal, warum das passiert, aber das lässt git denken, dass es sich um eine neue Datei handelt, und dann muss ich den Dateinamen zurück ändern. Können Sie Git dazu bringen, Falländerungen zu ignorieren?

[Bearbeiten] Ich vermute, dass Visual Studio mit dieser bestimmten Datei etwas Seltsames macht, da dies am häufigsten vorkommt, wenn ich sie nach Änderungen öffne und speichere. Ich habe jedoch keine Möglichkeit, Fehler in VS zu beheben, aber Git sollte hoffentlich etwas leistungsfähiger sein.

1800 INFORMATIONEN
quelle
1
Betreff: Visual Studio speichert Dateien in Kleinbuchstaben Welche Version von Visual Studio verwenden Sie? Zuletzt habe ich überprüft, dass dies in der Version 2008 besser zu sein schien. Im Jahr 2005 schien der Fehler aufzutreten, wenn Dateien über den Debugger anstelle des Solution Explorers geöffnet wurden.
Adam Mitz
Eigentlich ja, das ist 2005. Für eine Weile gibt es jedoch keine Chance auf ein Upgrade.
1800 INFORMATION

Antworten:

177

Seit Version 1.5.6 ist ignorecaseim [core]Abschnitt von eine Option verfügbar.git/config

zB 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

So ändern Sie es global:

git config --global core.ignorecase true
MarkB
quelle
21
git config core.ignorecase true oder git config --global core.ignorecase true für die globale Anwendung.
Aaron Jensen
@graywh: Es ist in git-config unter core.ignorecase ( kernel.org/pub/software/scm/git/docs/git-config.html ) dokumentiert
Ben Lings
4
Danke, ich habe endlich herausgefunden, warum Git meine Falländerungen nicht berücksichtigt. ignorecase = falsetat den Trick, es wurde truestandardmäßig -_-
Alex C
15

Mit diesem Befehl können Sie git zwingen, die Datei nur in Groß- und Kleinschreibung umzubenennen:

git mv --cached name.txt NAME.TXT

Beachten Sie, dass dies den Fall der Datei in Ihrer ausgecheckten Kopie auf einer Windows-Partition nicht ändert. Git zeichnet jedoch die Änderung des Gehäuses auf und Sie können diese Änderung festschreiben. Zukünftige Kassen werden das neue Gehäuse verwenden.

Andrew Arnott
quelle
1
"Fehler: unbekannte Option" zwischengespeichert "." Es ist auch nicht in den Dokumenten aufgeführt: git-scm.com/docs/git-mv
Alex
12

In der Git-Version 1.6.1.9 für Windows habe ich festgestellt, dass "ignorecase = true" in der Konfiguration bereits standardmäßig festgelegt wurde.

John C.
quelle
7
Ja, und wenn Sie mit Java-Dateien arbeiten, möchten Sie, dass diese Einstellung auf false gesetzt wird, da Sie sonst möglicherweise Probleme haben, wenn Sie ein solches Refactoring durchführen (Klasse HTMLParser wird zu HtmlParser oder umgekehrt).
PhiLho
Gleiches gilt für Git Version 2.10.1.windows.1
Kars Barendrecht
3
Ich weiß, dass dies alt ist, aber es ist unter Windows unsinnig, ignorecase auf false zu setzen, da Windows ein Betriebssystem ist, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird. Dies gilt unabhängig davon, ob Sie mit Java oder (keuchen!) C # oder etwas anderem arbeiten.
Ingyhere
5

Die in der Frage beschriebene Situation tritt jetzt unter Mac OS X, Git-Version> = 1.7.4 (glaube ich) wieder auf. Die Lösung besteht darin, "ignorecase = false" zu setzen und die Dateien in Kleinbuchstaben (die sich auf diese Weise geändert haben, nicht Visual Studio) von Hand wieder in "UsualCase" umzubenennen (dh "mv myname MyName").

Mehr Infos hier .

Akauppi
quelle