Git-Zeichenkodierung mit spanischen Zeichen

Lesezeit: 3 Minuten

Benutzer-Avatar
Alejandro Fiore

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.

  • 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


Benutzer-Avatar
Resa Hashemi

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.

Benutzer-Avatar
Jiri

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.

  • IN ACHT NEHMEN! Obwohl nützlich, ist der Befehl “git clean” besonders destruktiv (git-scm.com/docs/git-clean). Stellen Sie sicher, dass Sie Nicht-Git-Backups HABEN, bevor Sie diesen Befehl verwenden, da alle nicht verfolgten Dateien/Ordner aus Ihrem lokalen Projekt gelöscht werden. Die Verwendung von -i switch (interaktiver Modus) gibt Ihnen ein richtiges Gefühl dafür, was passiert. Prost!

    – Julio Nobre

    20. April 2016 um 10:45 Uhr


1121160cookie-checkGit-Zeichenkodierung mit spanischen Zeichen

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

Privacy policy