Saya tidak tahu sebab khusus, tetapi saya pernah menghadapi situasi yang sama sebelum ini. Saya mungkin merujuk kepada beberapa pengalaman:
Jangan gunakan git pada msys atau cygwin, gunakan git yang rasmi. Oleh kerana git pada cygwin berpendapat ia adalah persekitaran Linux, pengekodan lalai ialah UTF, dan Windows tidak menggunakan UTF, jadi apabila menambah, ia tidak akan diiktiraf sebagai Windows dan tidak akan ditranskodkan untuk anda, mengakibatkan kod yang kacau.
Jika terdapat masalah pengekodan, jangan cuba ubah suai konfigurasi lalai dahulu, tetapi rujuk 1
Jangan salin repositori git platform berbeza secara langsung. Git sendiri telah melakukan banyak kerja keserasian, seperti pengakhiran baris. Jika anda menyalinnya secara langsung, git tidak akan dapat mengubah suai pengakhiran baris, dan kemudian apabila anda git status, anda akan mendapati bahawa semua fail telah berubah.
Nah, jika anda menggunakan git rasmi sekali lagi dan konfigurasi pengekodan lalai, mungkin tiada masalah.
Biar saya tunjukkan konfigurasi yang saya gunakan git bash Saya tidak tahu ayat mana yang bertanggungjawab untuk commitencodingPengekodan log yang diserahkan dan disimpan dalam pustaka versi pengekodan sebenar disimpan dalam perpustakaan, maka Tiada cara lain. logoutputencoding hendaklah pengekodan yang digunakan semasa memberikannya kepada shell Jika ia berbeza, ia harus ditukar. gui.encoding nampaknya pengekodan yang digunakan dengan menetapkan git bash Ini sama dengan logoutputencoding yang saya tetapkan kepada utf-8.
Saya tidak tahu sebab khusus, tetapi saya pernah menghadapi situasi yang sama sebelum ini. Saya mungkin merujuk kepada beberapa pengalaman:
Jangan gunakan git pada msys atau cygwin, gunakan git yang rasmi. Oleh kerana git pada cygwin berpendapat ia adalah persekitaran Linux, pengekodan lalai ialah UTF, dan Windows tidak menggunakan UTF, jadi apabila menambah, ia tidak akan diiktiraf sebagai Windows dan tidak akan ditranskodkan untuk anda, mengakibatkan kod yang kacau.
Jika terdapat masalah pengekodan, jangan cuba ubah suai konfigurasi lalai dahulu, tetapi rujuk 1
Jangan salin repositori git platform berbeza secara langsung. Git sendiri telah melakukan banyak kerja keserasian, seperti pengakhiran baris. Jika anda menyalinnya secara langsung, git tidak akan dapat mengubah suai pengakhiran baris, dan kemudian apabila anda git status, anda akan mendapati bahawa semua fail telah berubah.
Nah, jika anda menggunakan git rasmi sekali lagi dan konfigurasi pengekodan lalai, mungkin tiada masalah.
Biar saya tunjukkan konfigurasi yang saya gunakan
git bash
Saya tidak tahu ayat mana yang bertanggungjawab untukcommitencoding
Pengekodan log yang diserahkan dan disimpan dalam pustaka versi pengekodan sebenar disimpan dalam perpustakaan, maka Tiada cara lain.logoutputencoding
hendaklah pengekodan yang digunakan semasa memberikannya kepadashell
Jika ia berbeza, ia harus ditukar.gui.encoding
nampaknya pengekodan yang digunakan dengan menetapkangit bash
Ini sama denganlogoutputencoding
yang saya tetapkan kepadautf-8
.