Wie kann ich Änderungen an Dateinamen vornehmen, nur in Git?
Ich habe den Namen mehrerer Dateien geändert, indem ich den ersten Buchstaben, wie in Name.jpg
, in Name.jpg
. Git erkennt diese Änderungen nicht, und ich musste die Dateien löschen und erneut hochladen. Gibt es eine Möglichkeit, dass git bei der Prüfung auf Dateinamen auf Groß- und Kleinschreibung achten kann? Ich habe keine Änderungen an der Datei selbst vorgenommen.
Sie können git mv verwenden :
git mv -f OldFileNameCase newfilenamecase
Git verfügt über einen Konfigurationsparameter, der core.ignorecase
ob Groß- und Kleinschreibung unterschieden werden soll: core.ignorecase
. Um Git den case-senstive-Wert mitzuteilen, setzen Sie diesen Parameter einfach auf false
:
git config core.ignorecase false
Dokumentation
Aus der git config
Dokumentation :

core.ignorecase
Wenn true, können Sie mit dieser Option verschiedene Problemumgehungen verwenden, sodass Git auf Dateisystemen, die nicht zwischen Groß- und Kleinschreibung unterscheiden, wie FAT, besser funktioniert. Wenn die Verzeichnisliste beispielsweise ein
makefile
erkennt und Git einmakefile
erwartet, geht Git davon aus, dass es sich tatsächlich um dieselbe Datei handelt, und speichert sie weiterhin alsmakefile
.Der Standardwert ist false, außer dass git -clone (1) oder git -init (1)
core.ignorecase
true setzen, wenn ein Repository erstellt wird.
Dateisysteme ohne Berücksichtigung der Groß- und Kleinschreibung
Die beiden bekanntesten Betriebssysteme, die über keine von der Groß- und Kleinschreibung abhängigen Dateisysteme verfügen, sind mir bekannt
- für Fenster
- OS X
Das habe ich unter OS X gemacht:
git mv File file.tmp git mv file.tmp file
Zwei Schritte, da ich sonst eine Fehlermeldung erhalten habe. Vielleicht können Sie dies in einem Schritt durch Hinzufügen von --cached
oder --cached
.
Mit SourceTree konnte ich das alles von der Benutzeroberfläche aus erledigen.
-
FILE.ext
in "FILE.ext
um - Bühne
-
FILE.ext
inFILE.ext
- Wiederholen Sie diese Datei erneut.
Es ist ein bisschen >
Unter OSX können Sie mit dem Festplatten-Dienstprogramm ein Festplatten- Image / Disk-Image erstellen , um dieses Problem zu vermeiden und andere Probleme mit der Entwicklung im Dateisystem zu vermeiden, ohne die Groß- und Kleinschreibung zu berücksichtigen.
Führen Sie das Festplattendienstprogramm aus, erstellen Sie ein neues Datenträgerabbild und verwenden Sie die folgenden Einstellungen (oder ändern Sie es nach Ihren Wünschen, speichern Sie jedoch die Groß- und Kleinschreibung):
2019
Manchmal ist es hilfreich, die Groß- / Kleinschreibung in Git vorübergehend zu ändern. Zwei mögliche Methoden:
Methode 1:
git -c core.ignorecase=true checkout mybranch
, um die Groß- / Kleinschreibung für einen einzelnen checkout
Befehl zu deaktivieren. Oder allgemeiner: git -c core.ignorecase=
<<true or false>>
<<command>>
. (Danke an VonC für den Vorschlag in den Kommentaren.)
Methode 2:
So ändern Sie eine Einstellung für einen längeren Zeitraum (z. B. wenn Sie mehrere Befehle ausführen müssen, bevor Sie sie erneut ändern):
-
git config core.ignorecase
(gibt die aktuellen Einstellungen zurück, z. B.false
). -
git config core.ignorecase
<<true or false>>
-git config core.ignorecase
den gewünschten neuen Parameter fest. - ... mehrere andere Befehle ausführen ...
-
git config core.ignorecase
<<false or true>>
- gibt den Konfigurationswert auf den vorherigen Wert zurück.
1) Name.jpg
Datei name1.jpg
in name1.jpg
2) Name.jpg
die gelöschte Datei Name.jpg
3) benennen Sie Dateiname1.jpg in Name.jpg
4) Name.jpg
Sie die hinzugefügte Datei Name.jpg
zum vorherigen Commit hinzu
git add git commit --amend
Ich habe die folgenden Lösungen aus den anderen Antworten ausprobiert und sie haben nicht funktioniert:
Wenn Ihr Repository wie bei mir auf GitHub gehostet wird, können Sie die Datei in der Quelle (GitHub.com) umbenennen und die Umbenennung der Datei von oben nach unten erzwingen.
Die folgenden Anweisungen hängen von dem Dateityp ab, den Sie umbenennen möchten, d. H. Dem Dateityp, den GitHub für bearbeitbar hält (Code, Text usw.) oder nicht bearbeitbar (Bild, Binärdatei usw.) in einem Browser .
- Besuchen Sie GitHub.com
- Gehen Sie zu Ihrem Repository auf GitHub.com und wählen Sie den Zweig aus, in dem Sie arbeiten
- Navigieren Sie mit dem Site-Datei-Navigationswerkzeug zu der Datei, die Sie umbenennen möchten.
- Mit GitHub können Sie eine Datei in einem Browser bearbeiten.
- a.) editierbar
- Klicken Sie auf das Symbol "Diese Datei bearbeiten" (es sieht aus wie ein Bleistift)
- Ändern Sie den Dateinamen im Textdateinameneintrag
- b) nicht editierbar
- Öffnen Sie die Schaltfläche "Download" in einer neuen Registerkarte und speichern Sie die Datei auf Ihrem Computer.
- Benennen Sie die heruntergeladene Datei um
- Klicken Sie auf der vorherigen Registerkarte auf GitHub.com auf das Symbol "Diese Datei löschen" (es sieht aus wie ein Mülleimer).
-
branchname
Sie sicher, dass dasbranchname
"Direkt inbranchname
schreiben" aktiviert ist, und klicken Sie auf die Schaltfläche "Änderungen übernehmen". - Klicken Sie im selben Verzeichnis auf GitHub.com auf "Dateien hochladen".
- Laden Sie die umbenannte Datei von Ihrem Computer herunter
- a.) editierbar
-
branchname
Sie sicher, dass dasbranchname
"Direkt inbranchname
schreiben" aktiviert ist, und klicken Sie auf die Schaltfläche "Änderungen übernehmen". - Lokal einen Zweig ausgeben / empfangen / ziehen
- Ist fertig
Mac OSX High Sierra 10.13 behebt dies etwas. Erstellen Sie einfach eine virtuelle APFS-Partition für Ihre Git-Projekte. Standardmäßig gibt es keine Größenbeschränkung und belegt keinen Speicherplatz.
- Klicken Sie im Festplatten-Dienstprogramm auf die Schaltfläche +, wenn die Container-Festplatte ausgewählt ist.
- Wählen Sie im Format APFS (-s obligatorisch)
- Nennen Sie es
Sensitive
- Gewinn
- Optional: Erstellen Sie in Sensitive einen Ordner mit dem Namen
git
undln -s/Volumes/Sensitive/git/Users/johndoe/git
Ihr Laufwerk befindet sich in /Volumes/Sensitive/
Dieses Problem ist in MacOS mehrmals aufgetreten. Bei Git wird zwischen Groß- und Kleinschreibung unterschieden, bei Mac bleibt jedoch nur die Groß- und Kleinschreibung erhalten.
Jemand Foobar.java
die Datei: Foobar.java
und beschließt nach einigen Tagen, sie in Foobar.java
umzubenennen. Wenn Sie den neuesten Code abrufen, schlägt der The following untracked working tree files would be overwritten by checkout...
fehl The following untracked working tree files would be overwritten by checkout...
Der einzige zuverlässige Weg, wie ich diesen Fix gesehen habe, ist:
-
git rm Foobar.java
- Sichern Sie es mit einer Nachricht, die Sie
git commit -m 'TEMP COMMIT!!'
nicht überspringen können. - Nachgezogen
- Dies führt zu einem Konflikt, der Sie zwingt, den Konflikt zusammenzuführen - weil Ihre Änderung ihn gelöscht hat, die andere Änderung jedoch umbenannt wurde (daher das Problem).
- Akzeptieren Sie Ihre Änderung, die "Löschen" lautet.
-
git rebase --continue
- Lassen Sie nun Ihren Workaround-
git rebase -i HEAD~2
und geben SieTEMP COMMIT!!
- Vergewissern Sie sich, dass die Datei jetzt
Foobar.java
heißt
Wenn Sie viele Dateien umbenannt haben und einige nur den Fall ersetzen, ist es schwierig, sich daran zu erinnern, was es ist. manuell "git relocation", kann die Datei sehr nützlich sein. Gehen Sie folgendermaßen vor, um den Dateinamen zu ändern:
- Löschen Sie alle Dateien und Ordner ohne Git in einen anderen Ordner / Repository.
- behebt den aktuellen leeren Git-Ordner (dies wird angezeigt, wenn alle Dateien gelöscht werden.)
- Fügen Sie alle Dateien wieder dem Quellordner von git / repository hinzu.
- behebt den aktuellen nicht leeren Git-Ordner.
Dadurch werden alle Probleme behoben, indem Sie nicht feststellen, welche Dateien oder Ordner Sie umbenannt haben.
Weitere Fragen zu Git- Tags: git -commit git-config zwischen Groß- und Kleinschreibung oder Frage stellen