Windows 下 msysGit 配置与使用指南
1、C:\Program Files\Git\etc\inputrc 修改两行为:(说明:使得在 Git Bash 中可以正常输入中文,比如中文的 commit log。)
set output-meta on set convert-meta off
2、C:\Program Files\Git\etc\git-completion.bash 末尾增加:(说明:使得在 Git Bash 中输入 ls 命令,可以正常显示中文文件名。)
alias ls='ls --show-control-chars --color=auto'
3、C:\Program Files\Git\etc\profile 末尾增加:
export LESSCHARSET=utf-8
【TIP】以上文件最好使用支持 unix 格式的编辑器修改(如 Notepad++、NetBeans),最次也用“写字板”而非“记事本”。
说明:$ git log 命令不像其它 vcs 一样,n 条 log 从头滚到底,它会恰当地停在第一页,按 space 键再往后翻页。这是通过将 log 送给 less 处理实现的。以上即是设置 less 的字符编码,使得 $ git log 可以正常显示中文。其实,它的值不一定要设置为 utf-8,比如 latin1 也可以……。还有个办法是 $ git –no-pager log,在选项里禁止分页,则无需设置上面的选项。
若实在不习惯 Vim,也可以设置为其它编辑器:
$ git config --global core.editor "notepad"
其中 notepad 可以替换为更好用的 wordpad、notepad++ 等(不过它们在命令行里无法直接访问,得先设置 PATH 变量)。
以上 alias 是为 Windows 定制的,Linux 下可以写得更优雅,不过鉴于使用上没分别,就保持一致吧~。
[gui]
encoding = utf-8
说明:我们的代码库是统一用的 utf-8,这样设置可以在 git gui 中正常显示代码中的中文。
[i18n]
commitencoding = GB2312
说明:如果没有这一条,虽然我们在本地用 $ git log 看自己的中文修订没问题,但,一、我们的 log 推到服务器后会变成乱码;二、别人在 Linux 下推的中文 log 我们 pull 过来之后看起来也是乱码。这是因为,我们的 commit log 会被先存放在项目的 .git/COMMIT_EDITMSG 文件中;在中文 Windows 里,新建文件用的是 GB2312 的编码;但是 Git 不知道,当成默认的 utf-8 的送出去了,所以就乱码了。有了这条之后,Git 会先将其转换成 utf-8,再发出去,于是就没问题了。
git+svn 中文文件名乱码的处理
git svn clone 在获取有中文文件名的源码库的时候,会出现文件名乱码。
解决的方法是:
2)使用git svn init 版本库地址 初始化版本库
3) 修改 .git 目录下的config文件,在文件末尾增加:
4) 在目标目录下运行 git svn fetch[svn]pathnameencoding=gbk
原理,git svn clone是默认的git svn init和git svn fetch的组合命令,先init再fetch,中间就可以对版本库的一些属性进行配置了。
这样获得的 svn 源码库文件名就不会是乱码了。