Git: Datei umbenennen

Lesezeit: 3 Minuten

Git Datei umbenennen
Epoche

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

Git Datei umbenennen
VonC

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

  • Ich habe es schon versucht git mv aber es hat mir gegeben fatal: renaming 'Frameworks' failed: Invalid argument

    – Ära

    13. Oktober 10 um 6:13 Uhr

  • “Aus NTFS-Sicht sind a.txt und A.txt dasselbe – also versucht Git, das beizubehalten, wie es die meisten Benutzer erwarten würden” – nicht ganz richtig. Sie sind für einige Operationen gleich und für andere unterschiedlich. Beispielsweise wird das Umbenennen von einem in das andere unter Windows unterstützt (aber nicht unter Linux, dies kann ein Fehler in ihrem Treiber sein, oder wer auch immer es implementiert hat, kannte diese Funktion nicht).

    – Mario Vilas

    14. März 13 um 20:18 Uhr

  • HFS+ Groß- und Kleinschreibung ist scheiße!!!! Außerdem unterstützt eine Menge Software die Groß- und Kleinschreibung von HFS nicht

    – Nicolas Terry

    28. August 15 um 19:47 Uhr

Git Datei umbenennen
kvz

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.

.

619230cookie-checkGit: Datei umbenennen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy