裡面的方法都試過,百度谷歌都翻遍了。 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)境,預(yù)設(shè)utf編碼的,而Windows用的不是utf,這樣add的時(shí)候就不會(huì)辨識(shí)成Windows從而不會(huì)給你轉(zhuǎn)碼,導(dǎo)致亂碼。
出現(xiàn)編碼問題,不要先嘗試去修改預(yù)設(shè)配置,而應(yīng)該參考1
不要將不同平臺(tái)的git倉庫直接複製過去。 git自己已經(jīng)做了很多相容性的工作了,像是行尾。如果直接複製過去的話,git就沒辦法修改行尾,然後你git status的時(shí)候,就會(huì)發(fā)現(xiàn)所有的檔案都改變了。
嗯,重新用官方的git,預(yù)設(shè)的編碼配置,估計(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