里面的方法都試過,百度谷歌都翻遍了。https://my.oschina.net/lujian...
走同樣的路,發(fā)現(xiàn)不同的人生
我不知道具體是什么原因,不過我以前也遇到過類似的情況,有幾點(diǎn)經(jīng)驗(yàn)或許可以參考一下:
不要用msys、cygwin上的git,用git官方提供的。因?yàn)閏ygwin這些上面的git以為是Linux環(huán)境,默認(rèn)utf編碼的,而Windows用的不是utf,這樣add的時(shí)候就不會(huì)識別成Windows從而不會(huì)給你轉(zhuǎn)碼,導(dǎo)致亂碼。
出現(xiàn)編碼問題,不要首先嘗試去修改默認(rèn)配置,而應(yīng)該參考1
不要將不同平臺的git倉庫直接復(fù)制過去。git自己已經(jīng)做了很多兼容性的工作了,比如行尾。如果直接復(fù)制過去的話,git就沒法修改行尾,然后你git status的時(shí)候,就會(huì)發(fā)現(xiàn)所有的文件都改變了。
嗯,重新用官方的git,默認(rèn)的編碼配置,估計(jì)就不會(huì)有問題了。
給你看我用 git bash
的配置吧,不知道哪一句的作用commitencoding
提交和保存在版本庫里 log 的編碼,如果你不知道保存在庫實(shí)際的編碼那就沒辦法了。logoutputencoding
應(yīng)該是交給shell
時(shí)候使用的編碼,如果不相同應(yīng)該會(huì)進(jìn)行轉(zhuǎn)換。gui.encoding
似乎是設(shè)置git bash
使用的編碼,這個(gè)要和logoutputencoding
,我都設(shè)置成utf-8
了。
[i18n]
commitencoding = utf-8
logoutputencoding = utf-8
[gui]
encoding = utf-8
[core]
quotepath = false
[i18n "commit"]
encoding = utf-8