In unserer git-gesteuerten Codebasis befinden sich einige Dateien, die ich umbenennen möchte. Genauer gesagt, ich will nur den Fall der Datei ändern, so dass sourceCode.java
wird SourceCode.java
, zum Beispiel. Der Haken: Ich bin auf einer Windows-Box und das Dateisystem glaubt, dass dies der gleiche Dateiname ist.
Wie kann ich Windows und Git dazu bringen, diese Änderung zu erkennen und einzuchecken?
git mv
funktionieren ( stackoverflow.com/a/24979063/6309 ). Auch unter Windows.Antworten:
Weitere Hinweise dazu finden Sie hier:
Wie kann man Git dazu bringen, Änderungen für den Fall zu ignorieren?
Oder:
quelle
git add
dieser neu umbenannten Ordner ausführen, NICHT VERPFLICHTEN und den Ordnernamen wieder in den gewünschten Namen ändern ,git add
es wieder und dann begehen.Get-ChildItem '.' | Rename-Item {$_.Name.ToLowerCase()}
Wenn Sie sich in einem FAT-Dateisystem befinden, können Sie nur eine zweistufige Umbenennung vornehmen:
sourceCode.java
inanything.you.like
anything.you.like
inSourceCode.java
In den Tagen, als wir Perforce verwendeten, hatten wir genau dieses Problem und dies war die einzige Lösung, die wir finden konnten.
quelle
Mit den folgenden Schritten konnte ich den Fall unter Windows ändern:
ignorecase = false
zu[core]
in.git/config
;ignorecase = false
im ersten Schritt hinzugefügt.Auf diese Weise haben Sie ein einzelnes Commit, das die Umbenennung enthält, und es macht es einfach, z. B. ein gesamtes Verzeichnis zu ändern.
quelle
Achtung. Dies kann zu Änderungen führen, die nicht zusammengeführt werden können. Git wird beim Zusammenführen unter Windows verwirrt, da es nicht entscheiden kann, ob der alte Großbuchstabenname und der neue Kleinbuchstabenname dieselbe Datei sind oder nicht (für Git sind sie nicht, für das Dateisystem jedoch). Zum Zusammenführen müssen Sie einige manuelle Problemumgehungen wie das Löschen der Dateien vor dem Zusammenführen durchführen.
Siehe Git-Rebase-Problem mit Dateien mit demselben Namen, aber unterschiedlicher Groß- und Kleinschreibung
Ich bin mir nicht sicher, ob dieses Problem schlimmer ist, als eine unkonventionell benannte Datei für immer und ewig in Ihrem Projekt zu haben, aber es lohnt sich zu wissen, ob es viele Benutzer mit vielen Zweigen gibt, die alle irgendwann zusammengeführt werden müssen.
quelle
Meiner Meinung nach fehlt ein einfacher Weg. Sie können dies für eine einzelne Datei, ein bestimmtes Verzeichnis oder sogar das gesamte Repository tun:
Wenn Sie auch die Unterverzeichnisse beeinflussen möchten, müssen Sie das
-r
Flag verwenden:quelle
Mit NTFS (oder FAT)
git mv
löst ein einzelner Befehl das Problem nicht. Diese Frage zeigt eine Technik, die funktioniert: git mv und nur die Groß- / Kleinschreibung des Verzeichnisses ändernquelle