Ich wollte einen Ordner umbenennen von “Frameworks
” zu “frameworks
“, aber git ließ mich den neuen Kleinbuchstabennamen nicht hinzufügen. Ich schätze, es behandelt Dateinamen ohne Berücksichtigung der Groß-/Kleinschreibung, oder?
EIN git add frameworks/ -f
hat nicht geholfen
Du kannst es versuchen:
"git mv -f foo.txt Foo.txt"
(Hinweis: Dies wird seit Git 2.0.1 nicht mehr benötigt)
- zu setzen
ignorecase
in der Konfigurationsdatei auf false.
Aber das Problem der Groß- und Kleinschreibung (z. B. unter Windows) wird in beschrieben msysgit-Problem 228 (nochmal: das sollte jetzt — Juni 2014 — mit git 2.0.1 funktionieren)
Es gibt immer eine Einstellungsoption ignorecase
auf false in der Konfigurationsdatei, die Unix-ähnliche Git-Semantik über NTFS erzwingt.
Git unterstützt dieses Verhalten, aber es ist nicht der Standard – aus NTFS-Sicht a.txt
und A.txt
sind dasselbe – also versucht Git, das beizubehalten, wie es die meisten Benutzer erwarten würden
Als bessere Problemumgehung können Sie
git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt
, wodurch auch die Groß-/Kleinschreibung der auf der Festplatte gespeicherten Datei geändert wird.
Dieser Blogbeitrag veranschaulicht das gleiche Problem auf MacOs während einer Rebase:
Standardmäßig wird bei Mac OS X-Dateisystemen die Groß-/Kleinschreibung nicht beachtet. FFFFFF.gif
ist das gleiche wie ffffff.gif
.
Wenn Sie die betreffende Datei nur aus dem Dateisystem und nicht aus dem Git-Index löschen, können Sie den betreffenden Zweig wohlgemerkt zusammenführen und die Datei wiederherstellen lassen, als ob nichts passiert wäre.
Die Schritte sind ziemlich einfach:
$ rm file/in/question.gif
$ git merge trunk
Denken Sie trotzdem daran, wofür git mv steht:
mv oldname newname
git add newname
git rm oldname
, also wenn newname
und oldname
kollidieren, müssen Sie sie anders machen (auch wenn es nur für kurze Zeit ist), daher die git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt
Wenn Sie auf Github hosten, können Sie die Umbenennungsfunktion auf deren Website verwenden. Musste das Gehäuse für 5 Dateien wechseln und fand, dass es wirklich gut funktionierte.
Ich hatte ein ähnliches Problem und konnte keinen neuen Ordnernamen (anderer Fall) erhalten, um ihn in Remote-Repos zu ändern. Ich fand, dass die einfachste Lösung darin bestand, die Datei einfach aus dem Repo zu verschieben und zu übergeben. Auslösen einer Löschaktion. Dann erneut hinzufügen und als ich hinzufügte, kam es mit dem richtigen Fall herein.
.