裡面的方法都試過,百度谷歌都翻遍了。 https://my.oschina.net/lujian...
走同样的路,发现不同的人生
我不知道具體是什麼原因,不過我以前也遇到過類似的情況,有幾點經驗或許可以參考一下:
不要用msys、cygwin上的git,用git官方提供的。因為cygwin這些上面的git以為是Linux環境,預設utf編碼的,而Windows用的不是utf,這樣add的時候就不會辨識成Windows從而不會給你轉碼,導致亂碼。
出現編碼問題,不要先嘗試去修改預設配置,而應該參考1
不要將不同平台的git倉庫直接複製過去。 git自己已經做了很多相容性的工作了,像是行尾。如果直接複製過去的話,git就沒辦法修改行尾,然後你git status的時候,就會發現所有的檔案都改變了。
嗯,重新用官方的git,預設的編碼配置,估計就不會有問題了。
給你看我用 git bash 的配置吧,不知道哪一句的作用commitencoding提交和保存在版本库里 log 的编码,如果你不知道保存在库实际的编码那就没办法了。logoutputencoding 应该是交给shell时候使用的编码,如果不相同应该会进行转换。gui.encoding 似乎是设置git bash 使用的编码,这个要和logoutputencoding,我都设置成utf-8了。
git bash
commitencoding
logoutputencoding
shell
gui.encoding
utf-8
[i18n] commitencoding = utf-8 logoutputencoding = utf-8 [gui] encoding = utf-8 [core] quotepath = false [i18n "commit"] encoding = utf-8
我不知道具體是什麼原因,不過我以前也遇到過類似的情況,有幾點經驗或許可以參考一下:
不要用msys、cygwin上的git,用git官方提供的。因為cygwin這些上面的git以為是Linux環境,預設utf編碼的,而Windows用的不是utf,這樣add的時候就不會辨識成Windows從而不會給你轉碼,導致亂碼。
出現編碼問題,不要先嘗試去修改預設配置,而應該參考1
不要將不同平台的git倉庫直接複製過去。 git自己已經做了很多相容性的工作了,像是行尾。如果直接複製過去的話,git就沒辦法修改行尾,然後你git status的時候,就會發現所有的檔案都改變了。
嗯,重新用官方的git,預設的編碼配置,估計就不會有問題了。
給你看我用
git bash
的配置吧,不知道哪一句的作用commitencoding
提交和保存在版本库里 log 的编码,如果你不知道保存在库实际的编码那就没办法了。logoutputencoding
应该是交给shell
时候使用的编码,如果不相同应该会进行转换。gui.encoding
似乎是设置git bash
使用的编码,这个要和logoutputencoding
,我都设置成utf-8
了。