仅有的幸福2017-05-02 09:51:50
我不知道具体是什么原因,不过我以前也遇到过类似的情况,有几点经验或许可以参考一下:
不要用msys、cygwin上的git,用git官方提供的。因为cygwin这些上面的git以为是Linux环境,默认utf编码的,而Windows用的不是utf,这样add的时候就不会识别成Windows从而不会给你转码,导致乱码。
出现编码问题,不要首先尝试去修改默认配置,而应该参考1
不要将不同平台的git仓库直接复制过去。git自己已经做了很多兼容性的工作了,比如行尾。如果直接复制过去的话,git就没法修改行尾,然后你git status的时候,就会发现所有的文件都改变了。
嗯,重新用官方的git,默认的编码配置,估计就不会有问题了。
漂亮男人2017-05-02 09:51:50
给你看我用 git bash
的配置吧,不知道哪一句的作用commitencoding
提交和保存在版本库里 log 的编码,如果你不知道保存在库实际的编码那就没办法了。logoutputencoding
应该是交给shell
时候使用的编码,如果不相同应该会进行转换。gui.encoding
似乎是设置git bash
使用的编码,这个要和logoutputencoding
,我都设置成utf-8
了。
[i18n]
commitencoding = utf-8
logoutputencoding = utf-8
[gui]
encoding = utf-8
[core]
quotepath = false
[i18n "commit"]
encoding = utf-8