目录 Content
[hide]
< 20160621更新: 新版本的Git可能已经解决了编码问题,请读者自行尝试 >
经过折腾,LT 探索出来了Windows环境下适合自己的 Git 使用方式,解决了中文输入、中文乱码、UTF-8编码、HTTP(S) 认证信息存储等问题。记录下以备忘 :
我的环境:
- WinXP 中文版 + Win7 中文版 + 编程工具 VC6 + VS2010 + Qt5
- Git 为 msysGit 版本为 Git-1.8.1.2-preview20130201
- 文本编辑器为 EmEditor
配置Windows下的 Git 环境
- GUI 的显示要根据文本文件编码来定。如果源码不是 UTF-8 格式,就没必要一股脑设置为 UTF-8。这一点,网上人云亦云说要设置为 UTF-8,不是完全正确的。有的repository 需要系统编码,有的 Repository 需要 UTF-8 编码,所以可以在打开 Git GUI 窗口后的选项里面,针对本 Repository 指定局部的编码。
- 由于 CMD 限制,bash 里输入中文乱码,所以干脆不要在命令行里输入中文描述,Git 会调用外部编辑器(editor)来让输入,然后保存为 UTF-8 格式。
我用 EmEditor,使用参数 /cp 65001 指定为UTF-8编码,参数 /sp 指定新开一个进程。提交时使用命令 git commit -a ,就会跳出一个 emeditor 新的窗口来输入。 - 中文路径名用 quotepath = false 解决(尽量避免中文路径)。
- Git 本身系统相关的存储、传送一律使用 UTF-8。
- 如果不使用Bash ,只使用 GUI ,那么中文乱码问题不会存在。
- GUI 界面语言恢复成英文,防止语意不清 。方法是删除本地化语言文件。
- 自动保存 HTTP(S) 认证的信息,使用 git-credential-winstore 这个辅助程序。保存的密码在 Win7 中可以在“控制面板”->“凭据管理器”或者使用命令行 cmdkey 看到;但是 WinXP 下,看不到保存的信息,不过 XP 可以使用从 Win2003 中抽取的命令行工具 cmdkey.exe 来查看和删除。(下载 XP 适用的命令行工具 cmdkey.exe)
- 使用http代理 (2014-11-27 更新)
所以
.gitconfig 配置:
[core] editor = 'C:\\your path\\EmEditor.exe' //sp //cp 65001 quotepath = false [i18n] commitEncoding = utf-8 logOutputEncoding = utf-8 [user] name = yourname email = youremail
(2014-11-27 更新 如果需要使用 http代理,则需要在 .gitconfig 中设置 http.proxy。如果要忽略ssl验证,则需要设置 http.sslVerify 为 false 。服务器地址为 proxyserverhost,端口为8080,则如下面设置。如果域环境代理认证存在问题,安装 Cntlm 代理转换。)
[http] proxy = http://user:pass@proxyServerIp:8080 sslVerify = false
( 2015-07-18更新:如果要使用 Notepad++,那么 editor可以这样写,同时也需要在notepad++里面设置为 New Document -> Encoding ,选中 UTF8 without BOM 选项。)
[core] editor = 'C:\\Program Files\\notepad++\\notepad++.exe' \\-multiInst
inputrc 修改
set output-meta on set convert-meta off
git-completion.bash 添加
alias ls='ls --show-control-chars --color=auto'
将安装目录 \Git\share\git-gui\lib\msgs\ 目录下的本地化语言文件删除
de.msg el.msg fr.msg hu.msg it.msg ja.msg nb.msg pt_br.msg ru.msg sv.msg zh_cn.msg
创建忽略文件 .gitignore
可以下载我写的样本 ( ignore_file.zip )
# for windows Thumbs.db # for VC6 Debug Release *.ncb *.opt *.plg *.aps # for VC2010 *.opensdf *.suo *.sdf *.vcxproj.user *.vsp ipch # for Qt *.pro.user build-*
扩展阅读 :
- 《Pro Git》 作者: Scott Chacon
http://git.oschina.net/progit - GitHub: GIT GUI tutorial to get started with git
http://www.mesta-automation.com/github-gui-guide-to-get-started-with-git/ - Git for Windows Unicode Support
https://github.com/msysgit/msysgit/wiki/Git-for-Windows-Unicode-Support - how to set desired language in git-gui?
http://stackoverflow.com/questions/1427785/how-to-set-desired-language-in-git-gui - Windows Credential Store for Git
http://gitcredentialstore.codeplex.com/ - Easy Credential Caching for Git
http://blogs.msdn.com/b/codeplex/archive/2012/05/11/easy-credential-caching-for-git.aspx - Speed Up Git (5x to 50x)
http://interrobeng.com/2013/08/25/speed-up-git-5x-to-50x/ - 使用GIT进行源码管理 —— 在VisualStudio中使用GIT
http://www.cnblogs.com/TianFang/archive/2013/09/29/3345038.html - 運用 Git 進行版本控管 – 使用 Visual Studio + Team Foundation Server
http://blogs.msdn.com/b/msdntaiwan/archive/2013/09/10/visual-studio-team-foundation-server-git.aspx
关键字:Git, UTF-8, msysGit, 中文, 乱码, GUI, 外部编辑器, git, utf-8, utf8, 认证, 凭据
Pingback: 入手《OpenCV2计算机视觉编程手册》 | LT
Pingback: 《OpenCV2计算机视觉编程手册》初读 - 编程语言综合 - 开发者第2216162个问答
不错啊,帮我解决了一个问题
大家一起交流