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,再发出去,于是就没问题了。

原文章:via1 via2

git+svn 中文文件名乱码的处理

git svn clone 在获取有中文文件名的源码库的时候,会出现文件名乱码。

解决的方法是: 

1) 不能用 git svn clone 命令

2)使用git svn init 版本库地址 初始化版本库
  (或git svn clone "svn源码库的url地址"  "本地工作目录或git库的路径" -T trunk -b branches -t tags)
  这样,就会生成本地的  .git  目录了。 

3) 修改 .git 目录下的config文件,在文件末尾增加:

[svn]
  pathnameencoding=gbk
 
4) 在目标目录下运行 git svn fetch

 原理,git svn clone是默认的git svn init和git svn fetch的组合命令,先init再fetch,中间就可以对版本库的一些属性进行配置了。

这样获得的 svn 源码库文件名就不会是乱码了。 


posted @ 2012-03-08 16:46  疯长的胡茬  阅读(356)  评论(0编辑  收藏  举报