2016-12-15 4 views
1

Ich habe mehrere Git-Repositories, die alle utf-8-codiert sind und Umlaute korrekt anzeigen. Ich möchte, dass sie zu einem einzigen Repo kombiniert werden (jedes Original Repo ist ein einzelner Zweig im Neuen). Mein System ist so konfiguriert, dass utf-8 als Standard-Git-Codierung verwendet wird. ich die folgenden Schritte aus:git fetch changes deutsch umlaute

git init test (initializes as utf-8) 
cd test 
git remote add test_remote C:/temp/remote_repo 
git fetch --all 
git checkout -b test_local test_remote/master 

Danach, ich habe den Remote-Zweig Master in der lokalen Niederlassung test_local mit allen Commits. Mein Problem ist, dass die deutschen Umlaute nicht korrekt angezeigt werden, aber git log gibt so etwas wie ü für ü.

Meine Frage ist, warum git Fetch Änderung Kodierungen und warum ist es nicht korrekt in der neuen Repo gezeigt, wie es auch utf-8 ist?

ich ein Beispiel angebracht, wie ich die Remote-Repo holen und die Meldung Änderungen zu übernehmen, während die Hash begehen bleibt gleich: Git Bash Screenshot

+0

Git im Allgemeinen * berührt überhaupt keine Ihrer Daten: es handelt sich nur um rohe Bytefolgen. Jede Kodierungsinterpretation ist Sache anderer Software, wie z. B. der Editor, der extrahierte Dateien betrachtet, oder der Pager, der Commits betrachtet. Es gibt jedoch einige eklige Fälle, in denen einige Betriebssysteme auf Pfadnamen beharren. Es ist daher wichtig, dass Sie Ihr Betriebssystem und genau dort, wo die Zeichen erscheinen, angeben: in Commit-Metadaten wie Log-Nachrichten, Dateimetadaten wie Dateinamen oder im Repository gespeicherte Dateidaten. – torek

+0

Ich benutze Windows 10 und arbeite ohne einen Editor, sondern nur die Git-Befehlszeile. Die falsche Kodierung erscheint nur in der Commit-Nachricht, alle anderen Daten und Metadaten sind in Ordnung, soweit ich sehen kann. Wenn ich git show im ursprünglichen Repo verwende, werden die Umlaute korrekt angezeigt. Wenn ich denselben Befehl im abgerufenen Repo verwende, sind darin kryptische Zeichen enthalten. – MxNbrt

+0

Ich benutze Windows nicht, also kann ich nicht wirklich helfen, aber es ist sicherlich eine Einstellung, die Windows irgendwie nicht versteht. Die Rohdaten in der Commit-Nachricht können buchstäblich * nicht verändert werden: das würde den Commit-Hash ändern, so dass es nicht mehr dasselbe Commit ist. Jemand, der mit Windows 10 vertrauter ist, kann das Problem wahrscheinlich identifizieren. – torek

Antwort

0

Zuerst die Codepage von meiner Windows-Kommandozeile zu ändern, habe ich versucht, chcp 65001 durch Ausführen . Da dies nicht funktionierte, habe ich versucht, die OS-Sprache für Programme, die Unicode nicht unterstützen, auf utf-8 zu setzen, aber das hat auch nicht funktioniert.

Nach einer langen Suche entdeckte ich, dass das Problem im Quell-Repository war, wo git config --list zeigte, dass auf einige Windows-Codierung festgelegt ist. Nach dem Umschalten auf utf-8 funktioniert jetzt alles einwandfrei.