Frage Wie setze ich nur Groß- und Kleinschreibung bei Dateiänderungen in Git fest?


Ich habe ein paar Dateinamen geändert, indem ich den ersten Buchstaben, wie in Name.jpg zu name.jpg. Git erkennt diese Änderungen nicht und ich musste die Dateien löschen und sie erneut hochladen. Gibt es eine Möglichkeit, dass Git bei der Suche nach Dateinamenänderungen zwischen Groß- und Kleinschreibung unterscheiden kann? Ich habe keine Änderungen an der Datei selbst vorgenommen.


831
2017-07-16 17:41


Ursprung


Antworten:


Sie können verwenden git mv:

git mv -f OldFileNameCase newfilenamecase

1055
2018-01-03 15:57



Git hat eine Konfigurationseinstellung, die angibt, ob die Groß- / Kleinschreibung beachtet werden soll oder nicht: core.ignorecase. Um Git zu sagen, dass es sense-sensitiv sein soll, setzen Sie einfach diese Einstellung auf false:

git config core.ignorecase false

Dokumentation

Von dem git config Dokumentation:

core.ignorecase

Wenn diese Option aktiviert ist, werden verschiedene Problemumgehungen aktiviert, damit git bei Dateisystemen, die keine Groß- / Kleinschreibung erfordern, wie z. B. FAT, besser funktioniert. Zum Beispiel, wenn eine Verzeichnisliste findet makefile wenn Git erwartet Makefile, Git wird davon ausgehen, es ist wirklich die gleiche Datei, und weiterhin daran zu erinnern, wie Makefile.

Der Standardwert ist falsch, außer Git-Klon (1) oder git-init (1) wird prüfen und einstellen core.ignorecase true, wenn zutreffend, wenn das Repository erstellt wird.

Groß-und Kleinschreibung-Datei-Systeme

Die zwei beliebtesten Betriebssysteme, die ich kenne, sind die Groß- und Kleinschreibung

  • Windows
  • OS X

673
2017-07-16 22:52



Das habe ich unter OS X gemacht:

git mv File file.tmp
git mv file.tmp file

Zwei Schritte, denn sonst habe ich einen Fehler "Datei existiert". Vielleicht kann es in einem Schritt getan werden, indem man hinzufügt --cached oder so.


83
2017-11-13 14:27



Mit SourceTree konnte ich dies alles über die Benutzeroberfläche tun

  • Umbenennen FILE.ext zu whatever.ext
  • Stage diese Datei
  • Jetzt umbenennen whatever.ext zu file.ext
  • Stage diese Datei erneut

Es ist ein bisschen langweilig, aber wenn Sie nur ein paar Dateien machen müssen, ist es ziemlich schnell


65
2017-10-28 14:40



Unter OSX können Sie das Festplatten-Dienstprogramm verwenden, um dieses Problem zu vermeiden und andere Probleme bei der Entwicklung eines Dateisystems ohne Beachtung der Groß- / Kleinschreibung zu vermeiden einen Fall erstellen empfindlich virtuelles Laufwerk / Disk-Image.

Führen Sie das Festplatten-Dienstprogramm aus, erstellen Sie ein neues Festplatten-Image und verwenden Sie die folgenden Einstellungen (oder ändern Sie sie nach Belieben, beachten Sie jedoch die Groß- und Kleinschreibung):

Mac Disk Utility Screenshot

Stellen Sie sicher, git es jetzt auf einer Groß-und Kleinschreibung FS ist:

git config core.ignorecase false

36
2017-10-03 19:18



1) Datei umbenennen Name.jpg zu name1.jpg

2) begehe die entfernte Datei Name.jpg

3) Datei umbenennen name1.jpg zu name.jpg

4) ammend Datei hinzugefügt name.jpg zum vorherigen Commit

git add
git commit --amend

12
2017-10-03 19:13



Ich habe die folgenden Lösungen aus den anderen Antworten ausprobiert und sie haben nicht funktioniert:

Wenn Ihr Repository wie ich auf GitHub gehostet wird, können Sie die Datei nach dem Ursprung (GitHub.com) umbenennen und das Umbenennen der Dateien von oben nach unten erzwingen. Folgendes habe ich getan:

  1. Besuchen Sie GitHub.com
  2. Navigieren Sie zu Ihrem Repository auf GitHub.com und wählen Sie den Zweig aus, in dem Sie arbeiten
  3. Navigieren Sie mithilfe des Datei-Navigationstools der Site zu der Datei, die Sie umbenennen möchten
  4. Klicken Sie auf das Symbol "Diese Datei bearbeiten" (es sieht aus wie ein Stift)
  5. Ändern Sie den Dateinamen in der Texteingabe des Dateinamens
  6. Stellen Sie sicher, dass das "Commit direkt an die branchname Zweig "Radio-Button ist ausgewählt
  7. Klicken Sie auf die Schaltfläche "Änderungen bestätigen"
  8. Lokal, checkout / pull / hol den Zweig
  9. Erledigt

5
2017-10-31 18:22