现在随着Githut和SNS的流行,Social Code也像Facebook在世界中流行一样,在程序猿中流行开来。而且有犹如星星之火,在程序猿中燎原开来。有Linus这样的大牛作为发明人,有Linux Kernel这样的庞大应用作为“小白鼠”做测试,再有Github这样开放的网络交流平台,Git想不火都难。所以,今天D瓜哥也赶赶时髦,玩转一下Git,这个版本管理工具。

Git,这个版本管理工具是美国发明的,所以对中文的原生支持性不是很好。在使用时,主要会遇到三个场景对中文的支持性比较差,严重影响用户体验。下面,D瓜哥就针对这三个使用场景进行分别的描述。

一、ls -l 显示文件列表

想想刚玩Git那会,下个msysgit,瞬间装好,信心爆棚,无视GUI(我比较喜欢Linux以及命令行),cd到某个目录下,ls查看文件,傻眼了。MD,竟然都是乱码,着实无语加郁闷了一把!这是该怎么办呢?

其实,很简单。只需要修改一下配置信息就能解决问题。这里先做个假设,假设你Git的安装目录是%GIT_HOME%。修改步骤如下:

使用文本编辑器打开文件%GIT_HOME%\etc\gitconfig,将下面显示的三个选项的字符集修改成如下:

[gui]encoding = utf-8
[i18n]commitencoding = gbk
[svn]pathnameencoding = gbk

通过这里的设置,打开Git环境中的中文支持。另外,需要特意说明一下,虽然pathnameencoding设置了文件路径的中文支持,但是为了防止不必要的麻烦出现,同时也为了提高在Bash中快速的进入某个路径,推荐使用英文路径,不要使用中文路径。

然后,使用文本编辑器打开文件%GIT_HOME%\etc\git-completion.bash,然后再其中添加如下内容:

alias ls='ls --show-control-chars --color=auto'

我个人比较喜欢列表显示文件,但是msysgit安装后,不支持ll。所以,就自己手动添加上支持。在上面那行配置的下面,添加下面这行配置:

alias ll='ls -l'

玩Linux的人,应该都能看出来,其实这只是Linux命令中,给命令起了一个别名而已。

最后,使用文本编辑器打开文件%GIT_HOME%\etc\profile,将下面的这个配置的字符集设置成如下:

export LESSCHARSET=utf-8    #或gbk

到这里,就大功告成了。你在Bash中,试一下,ls或者ll,是不是看到了久违的中文呢?

二、提交中文Commit Log

既然使用Git,那么肯定是要文件修改后,肯定是要提交的。但是,刚刚安装好后msysgit对Commit Log的中文支持是在是忍无可忍。没办法,这时还是要“自己动手,丰衣足食”啊。

其实,msysgit对中文Commit Log主要是因为默认的编辑器vi对中文的支持不好。所以,把默认编辑器修改成一个对中文支持比较好的编辑器即可。对于编辑器,我比较喜欢vim(在Windows下就是gVim),下面就把默认编辑器修改成gVim。步骤如下:

  1. 打开目录GIT_HOME%\bin\;
  2. 找到vi或者vim文件(注意:没有后缀。),复制一份出来命名gvim;
  3. ,使用文本编辑器打开gvim,把里面的exec /share/vim/vim73/gvim 改成自己的Gvim目录,D瓜哥的是exec /C/Vim/vim73/gvim
  4. 运行msysgit Bash,执行命令git config –global core.editor gvim

到这里,把默认编辑器已经修改成了gVim。另外,还需要修改一下msysgit的配置项。使用文本编辑器打开文件%GIT_HOME%\etc\inputrc,修改下面两个配置项如下:

set output-meta on
set convert-meta off

我第一次在修改完这些配置后,提交修改中还是不能很好的支持地支持中文。后来发现,主要是使用方法不对。这里,给大家提个醒,提交时应该使用如下指令:

git commit -a

注意,不要加-m的参数。否则就不能使用gVim了,也就不能支持中文了。

三、提交文件名为中文的文件

其实,D瓜哥也不知道如何修改才能很好的支持中文。不过,这里有一个取巧的方法:一般同时修改的文件都是相关的文件。所以,在添加或者提交时,可以使用-a参数,把几个文件同时添加或提交。

在这里,D瓜哥也做个留个疑问, 如何才能让Git很好的支持提交文件名为中文的文件?

参考资料:

原文  http://www.diguage.com/archives/26.html

from: http://www.tuicool.com/articles/J7b2Mb

彻底解决Git中文乱码问题相关推荐

  1. 中文提交到git乱码_解决Git 中文乱码问题

    乱码情景对号入座和解决方案 乱码情景1 在cygwin中,使用git add添加要提交的文件的时候,如果文件名是中文,会显示形如274\232\350\256\256\346\200\273\347\ ...

  2. git配置中文乱码_解决git中文乱码问题

    进入git安装目录,改一下配置就可以基本解决: 1.etc\gitconfig: [gui] encoding = utf-8 [i18n] commitencoding = gbk [svn] pa ...

  3. 解决putty中文乱码并远程访问linux界面功能

    1,解决putty中文乱码 打开putty主程序,选择window-〉Appearance-〉Font settings-〉Change...,选择汉字字体为宋体或楷体 在window-〉Appear ...

  4. 解决Linux中文乱码

    解决Linux中文乱码 方法一:    修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030 对于其他用户,也必须相应修改该文件 使用该方法时putt ...

  5. elasticsearch解决控制台中文乱码问题

    elasticsearch解决控制台中文乱码问题 参考文章: (1)elasticsearch解决控制台中文乱码问题 (2)https://www.cnblogs.com/chenmz1995/p/1 ...

  6. 解决flask中文乱码的问题

    解决flask中文乱码的问题 参考文章: (1)解决flask中文乱码的问题 (2)https://www.cnblogs.com/qiumingcheng/p/11792846.html (3)ht ...

  7. 解决request中文乱码问题

    解决request中文乱码问题 参考文章: (1)解决request中文乱码问题 (2)https://www.cnblogs.com/wangguoning/p/6151517.html 备忘一下.

  8. 解决python中文乱码的方法

    解决python中文乱码的方法 参考文章: (1)解决python中文乱码的方法 (2)https://www.cnblogs.com/bobodeboke/p/11935876.html 备忘一下.

  9. zabbix 彻底解决图片中文乱码

    zabbix 彻底解决图片中文乱码 环境: CentOS 7.2 zabbix-3.0.4 LTS nginx-1.10.0 php-5.6.26 mariadb-10.1.13 请参看zabbix- ...

最新文章

  1. 学习python的日常6
  2. 【转】ASP.NET验证控件详解(非空验证,比较验证,范围验证,正则表达式,自定义验证)...
  3. Leetcode Wildcard Matching
  4. Tomcat虚拟目录的配置
  5. linux网卡设置详解,史上最详细的Linux网卡ifcfg-eth0配置详解
  6. 服务器系统玩dnf,win7系统玩dnf提示正在连接服务器的解决方法
  7. 两边双虚线是什么意思_行星减速机生产厂家解析行星减速机双支撑与单支撑
  8. 【面向对象】面向对象程序设计测试题8-对象之间one-to-many关系测试题
  9. 在python中创建列表的最佳和/或最快方法
  10. eclips断点调试
  11. 记事本编码html乱码,记事本乱码怎么办【解决方法】
  12. Wake On Lan 网络唤醒 远程开机功能设置教程
  13. 【面试个人成长】2021年过半,社招和校招的经验之谈
  14. 手机做web服务器 无限流量,无限流量卡和手机随身无线wifi,你选择哪一个?
  15. 深造分布式 打败面试官 招式三 直捣黄龙
  16. 【新书推荐】【2019】基于Kronecker积波束形成的阵列处理
  17. 使用outlook 2007配置microsoft exchange邮箱方法步骤
  18. Android Studio 调试的时候出现 Access denied finding property “ro.serialno“
  19. 如何连接苹果电脑打印服务器
  20. java 路由框架_使用Spring框架和AOP实现动态路由

热门文章

  1. jstl核心标签使用
  2. 手机中的AR是怎么实现的
  3. include、ViewStub、merge优化布局标签
  4. Lesson 16.3 卷积操作
  5. 【学习方法】学习心法总结之——如何平稳得开启数据之路
  6. 抽象类(abstract class)和接口(Interface)的区别
  7. Algorithms_入门基础_时间复杂度空间复杂度
  8. ORACLE-WITH 子句详解
  9. SpringtBoot+SpringSecurity+Jwt+MyBatis整合实现用户认证以及权限控制
  10. 腾讯面试题Java 并发包之线程池综述