Ich habe ein Repository aus vorhandenen Dateien erstellt. In den Dateien war eine mit dem Namen „español.gif“. Nun, jedes Mal, wenn ich es tue
$ git status
Ich erhalte eine Fehlermeldung:
$ path/espa�ol.gif: Protocol error
Ich habe versucht, die Dateien mit zu entfernen
$ git rm path/espa�ol.gif
$ git rm --cached path/espa�ol.gif
$ git rm path/espa?ol.gif
$ git rm --cached path/espa?ol.gif
aber es ändert sich nichts, es steht immer “Protokollfehler”.
Wenn ich eine Zusammenführung versuche, erhalte ich:
Fehler: Ihre lokalen Änderungen an ‘path/espa�ol.gif’ würden beim Zusammenführen überschrieben. Abbruch.
Gibt es eine Möglichkeit, die Datei aus dem Index zu entfernen und diesen Fehler zu stoppen?
Bearbeiten: Ich habe das Problem gelöst, das Git-Repository zu löschen und erneut zu erstellen, ohne eine Datei mit einem spanischen Zeichen im Namen.
Dies sollte das Problem lösen
git config core.quotepath false
Aus man git-config(1) für core.quotepath:
Die Befehle, die Pfade ausgeben (z. B. ls-files, diff), werden, wenn ihnen die Option -z nicht gegeben ist, „ungewöhnliche“ Zeichen im Pfadnamen in Anführungszeichen setzen, indem sie den Pfadnamen in doppelte Anführungszeichen und umgekehrte Schrägstriche einschließen, genauso wie Zeichenfolgen in C Quellcode zitiert werden. Wenn diese Variable auf „false“ gesetzt ist, werden die Bytes größer als 0×80 nicht in Anführungszeichen gesetzt, sondern wörtlich ausgegeben. Beachten Sie, dass doppelte Anführungszeichen, umgekehrte Schrägstriche und Steuerzeichen unabhängig von der Einstellung dieser Variablen immer ohne -z in Anführungszeichen gesetzt werden.
Könntest du auch verwenden git clean
(wahrscheinlich git clean -d -f
aber konsultieren Sie zuerst das Git-Handbuch!) Befehl zum Entfernen nicht getrackte Dateien – Dies ist der Grund für die Fehlermeldung “error: Your local changes ….”.
Aufgrund der Codierungsprobleme hat Git wahrscheinlich bereits eine Datei mit einem schlechten Dateinamen erstellt und obwohl die gesamte (Pull/Push?) Operation abgelehnt wurde, blieb die bereits erstellte Datei im Ziel.
Es ist nur umwerfend für mich dass in der heutigen Zeit weit ins 21. Jahrhundertda ist still Software hirntot genug, dass sie nicht einmal westeuropäische 8-Bit-Zeichensätze unterstützen kann – ganz zu schweigen von UTF-8 ….. Ich habe die gleichen Probleme mit deutschen Umlauten (ä ö ü und so weiter) – aber immer noch keine andere Lösung, als auf alte 7-Bit-ASCII-Namen zurückzugreifen – wie in den 1970er Jahren oder so……
– marc_s
18. August 2011 um 20:44 Uhr
@marc_s, git unterstützt sie gut. Einschließlich der “español.gif”. Gemessen an dem, was das OP gepostet hat, heißt die Datei nicht “español.gif”, sondern etwas Ungültiges (falsch codiert).
– Ikegami
18. August 2011 um 20:47 Uhr
Wenn die Datei español.gif heißt, warum versuchen Sie, español.gif zu löschen?
– Ikegami
18. August 2011 um 20:48 Uhr
Klingt so, als ob Ihre Shell/Ihr Terminal nicht richtig konfiguriert ist.
– Meister der Diebe
18. August 2011 um 20:49 Uhr
@Alejandro Fiore, verwendest du Windows?
– Ikegami
18. August 2011 um 20:54 Uhr