好尴尬,刚才去新建的moonlight项目下面提交代码,提交说明里面填了一些中文,结果push上去之后拉出来的提交说明变成了乱码,然后又在本博客的源码分支上提交了一次,添加了新写的三篇文章,也是用的中文,结果也是乱码。
以前不是解决好了这个问题了么?如今怎么又出现了?
之前的文档有误,现在也不深究了,解决问题吧:
关于git中文乱码,通常有三个场景:
- git bash控制台里面的命令乱码,如ls,git log等
- git GUI乱码
- git GUI提交到远程仓库后,远程仓库显示的是乱码
第一个,ls命令,显示中文文件夹或文件时乱码,解决方案:找到git安装目录下的etc\git-completion.bash文件,在最末位加上这一句即可:
alias ls='ls --show-control-chars --color=auto'
当然,还有全局设置的方式,但这里并不推荐,所以机不做介绍了。
针对git log命令,对git记录说明中的中文显示为方块乱码的解决方案:在用户目录下找到git的配置文件.gitconfig,在[i18n]项目(如果没有可自行新建)下,设定一个属性:logoutputencoding = utf-8。
建议通过命令行的方式进行设置:
git config --global i18n.logoutputencoding utf-8
至于GUI的乱码问题,可以直接在GUI的界面上右键,在弹出的菜单中选择编码方式,指定为utf-8即可。也可以通过命令行进行设置:
git config --global gui.encoding utf-8
对于git提交说明乱码,将提交的文本编码方式指定为utf-8即可。
git config --global i18n.commit.encoding utf-8
之前不知道哪一份文档,说要显示git log的提交说明为中文,将i18n.logoutputencoding设置为gbk即可。这是一个误导!
总结
在用户根目录下的.gitconfig文件中,确保以下设置存在:
[gui]
encoding = utf-8
[i18n]
commitencoding = utf-8
logoutputencoding = utf-8
上面的三个设置项对应的git命令行语句为:
git config --global gui.encoding utf-8
git config --global i18n.commit.encoding utf-8
git config --global i18n.logoutputencoding utf-8
要想让ls命令支持显示中文,对ls命令做一个别名,将其重定向为ls --show-control-chars --color=auto即可让ls命令显示含中文名的文件夹或文件了。
不要再问为什么要改成utf-8格式了,谁让Linux的默认编码就是utf-8呢?更何况windows系统下的默认文本编码并非utf-8,有许许多多的转码问题,所以,直接指定一种编码,更方便多操作系统的兼容性。
好尴尬,刚才去新建的
moonlight项目下面提交代码,提交说明里面填了一些中文,结果push上去之后拉出来的提交说明变成了乱码,然后又在本博客的源码分支上提交了一次,添加了新写的三篇文章,也是用的中文,结果也是乱码。以前不是解决好了这个问题了么?如今怎么又出现了?
之前的文档有误,现在也不深究了,解决问题吧:
关于git中文乱码,通常有三个场景:
第一个,
ls命令,显示中文文件夹或文件时乱码,解决方案:找到git安装目录下的etc\git-completion.bash文件,在最末位加上这一句即可:当然,还有全局设置的方式,但这里并不推荐,所以机不做介绍了。
针对
git log命令,对git记录说明中的中文显示为方块乱码的解决方案:在用户目录下找到git的配置文件.gitconfig,在[i18n]项目(如果没有可自行新建)下,设定一个属性:logoutputencoding = utf-8。建议通过命令行的方式进行设置:
至于GUI的乱码问题,可以直接在GUI的界面上右键,在弹出的菜单中选择编码方式,指定为utf-8即可。也可以通过命令行进行设置:
对于git提交说明乱码,将提交的文本编码方式指定为utf-8即可。
之前不知道哪一份文档,说要显示git log的提交说明为中文,将
i18n.logoutputencoding设置为gbk即可。这是一个误导!总结
在用户根目录下的
.gitconfig文件中,确保以下设置存在:上面的三个设置项对应的git命令行语句为:
要想让
ls命令支持显示中文,对ls命令做一个别名,将其重定向为ls --show-control-chars --color=auto即可让ls命令显示含中文名的文件夹或文件了。