Git 是一个很是优秀的分布式版本控制系统,最初为Linux Kernel版本管理进行量身定作。优势是,和其余版本控制系统相比,稳定,速度快,跨平台,易学易用,无须要花费成本。更多优势请点击阅读:http://whygitisbetterthanx.com/php
缺点也有点明显,那就是因为该版本控制系统专门为Linux 内核定制,没有开发其余平台的版本,所以,在其余平台上使用的都是Git的移植版本。在Windows上使用Git,一般是msysGit 和 TortoiseGit 进行组合使用。在Windows系统下Git的使用过程当中,咱们发现,若是出现如下状况之一,可能出现乱码:git
一、Log提交时使用中文注释windows
二、目录或者文件名含有中文bash
三、代码中含有中文注释less
这些问题在跨平台使用的时候极为明显,给跨平台代码管理带来极大的不便。本人也是深受其害,但愿官方可以早日开发跨平台的版本,解决掉乱码问题。分布式
通过本人实践,总结了一套临时解决方案,暂时可以解决以上乱码问题。具体操做以下:ui
注:因为Linux上一般使用utf-8进行编码,所以,项目管理中统一使用utf-8进行编码。google
1、下载并安装msysGit和TortoiseGit编码
msysGit :http://utf8-git-on-windows.googlecode.com/files/Git-1.7.3.2-utf8-20110213.exespa
TortoiseGit:http://utf8-git-on-windows.googlecode.com/files/TortoiseGit-1.6.3.2-UTF8-32bit-20110127.msi
2、在Git\etc\git-completion.bash文件中添加:
alias ls='ls --show-control-chars --color=auto'
做用:使得在 Git Bash 中输入 ls 命令,能够正常显示中文文件名。
3、修改Git\etc\inputrc文件中的两项配置:
set output-meta on
set convert-meta off
做用:使得在 Git Bash 中能够正常输入中文,好比中文的 commit log。
4、在Git\etc\profile文件中添加:
export LESSCHARSET= utf-8
做用:$ git log命令不像其它vcs同样,n条log从头滚到底,它会恰当地停在第一页,按space键再日后翻页。这是经过将log送给less处理实现的。以上便是设置less的字符编码,使得$ git log能够正常显示中文。其实,它的值不必定要设置为 utf-8,好比latin1也能够……。还有个办法是$ git --no-pager log,在选项里禁止分页,则无需设置上面的选项。
5、在C:Gitetcgitconfig文件中修改或添加以下配置:
[core]
quotepath = false
做用:没有这一条,$git status输出中文会显示为UNICODE编码。
注:一、不论是在Windows仍是在Linux下,请使用utf-8进行编码,而不是GBK或者其余。
在Eclipse下的编码设置请参考: 《Eclipse中设置编码的方式》
2、在进行版本管理时,尽可能使用TortoiseGit和Git GUI,而不建议使用Git Bash。
三、以上只是临时解决方案。