里面的方法都试过,百度谷歌都翻遍了。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
了。