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.

930
16 июля '13 в 20:41 2013-07-16 20:41 Gil Shulman fragte am 16. Juli 13 um 20:41 Uhr 2013-07-16 20:41
@ 11 Antworten

Sie können git mv verwenden :

 git mv -f OldFileNameCase newfilenamecase 
1144
03 янв. Beantwortet von Keith Smiley am 3. Januar 2014-01-03 18:57 '14 um 18:57 2014-01-03 18:57

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 :

border=0

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 ein makefile erwartet, geht Git davon aus, dass es sich tatsächlich um dieselbe Datei handelt, und speichert sie weiterhin als makefile .

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
754
17 июля '13 в 1:52 2013-07-17 01:52 Die Antwort wird von user456814 17. Juli 13 um 01:52 2013-07-17 01:52 gegeben

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 .

93
13 нояб. Antwort von Sijmen Mulder 13. November 2013-11-13 17:27 '13 am 17:27 2013-11-13 17:27

Mit SourceTree konnte ich das alles von der Benutzeroberfläche aus erledigen.

  • FILE.ext in " FILE.ext um
  • Bühne
  • FILE.ext in FILE.ext
  • Wiederholen Sie diese Datei erneut.

Es ist ein bisschen >

87
28 окт. Antwort von Chris Barr 28. Oktober 2016-10-28 17:40 '16 um 17:40 Uhr 2016-10-28 17:40

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

37
03 окт. die antwort wird von user1821510 03 oct gegeben. 2014-10-03 22:18 14 um 22:18 Uhr 2014-10-03 22:18

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):

  1. git config core.ignorecase (gibt die aktuellen Einstellungen zurück, z. B. false ).
  2. git config core.ignorecase <<true or false>> - git config core.ignorecase den gewünschten neuen Parameter fest.
  3. ... mehrere andere Befehle ausführen ...
  4. git config core.ignorecase <<false or true>> - gibt den Konfigurationswert auf den vorherigen Wert zurück.
15
10 июля '18 в 14:05 2018-07-10 14:05 antwortete Steve Chambers am 10. Juli '18 um 14:05 Uhr. 2018-07-10 14:05 Uhr

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 
14
03 окт. Antwort gegeben Razon 03 Okt. 2016-10-03 22:13 '16 um 22:13 Uhr 2016-10-03 22:13

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 .

  1. Besuchen Sie GitHub.com
  2. Gehen Sie zu Ihrem Repository auf GitHub.com und wählen Sie den Zweig aus, in dem Sie arbeiten
  3. Navigieren Sie mit dem Site-Datei-Navigationswerkzeug zu der Datei, die Sie umbenennen möchten.
  4. Mit GitHub können Sie eine Datei in einem Browser bearbeiten.
    • a.) editierbar
      1. Klicken Sie auf das Symbol "Diese Datei bearbeiten" (es sieht aus wie ein Bleistift)
      2. Ändern Sie den Dateinamen im Textdateinameneintrag
    • b) nicht editierbar
      1. Öffnen Sie die Schaltfläche "Download" in einer neuen Registerkarte und speichern Sie die Datei auf Ihrem Computer.
      2. Benennen Sie die heruntergeladene Datei um
      3. Klicken Sie auf der vorherigen Registerkarte auf GitHub.com auf das Symbol "Diese Datei löschen" (es sieht aus wie ein Mülleimer).
      4. branchname Sie sicher, dass das branchname "Direkt in branchname schreiben" aktiviert ist, und klicken Sie auf die Schaltfläche "Änderungen übernehmen".
      5. Klicken Sie im selben Verzeichnis auf GitHub.com auf "Dateien hochladen".
      6. Laden Sie die umbenannte Datei von Ihrem Computer herunter
  5. branchname Sie sicher, dass das branchname "Direkt in branchname schreiben" aktiviert ist, und klicken Sie auf die Schaltfläche "Änderungen übernehmen".
  6. Lokal einen Zweig ausgeben / empfangen / ziehen
  7. Ist fertig
8
31 окт. Die Antwort wird am 31. Oktober von gmeben gegeben 2017-10-31 21:22 '17 um 21:22 2017-10-31 21:22

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.

  1. Klicken Sie im Festplatten-Dienstprogramm auf die Schaltfläche +, wenn die Container-Festplatte ausgewählt ist.
  2. Wählen Sie im Format APFS (-s obligatorisch)
  3. Nennen Sie es Sensitive
  4. Gewinn
  5. Optional: Erstellen Sie in Sensitive einen Ordner mit dem Namen git und ln -s/Volumes/Sensitive/git/Users/johndoe/git

Ihr Laufwerk befindet sich in /Volumes/Sensitive/

2019

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 Sie TEMP COMMIT!!
  • Vergewissern Sie sich, dass die Datei jetzt Foobar.java heißt
3
05 авг. Antwort von Ashwin Jayaprakash 05 Aug 2016-08-05 20:23 '16 um 20:23 2016-08-05 20:23

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.

2
29 апр. Antwort von Ricardo Virtudazo Jr 29. April 2017-04-29 14:00 '17 um 2 pm 2017-04-29 14:00