打造完美 Windows git 命令行 环境

2014-12-16 01:47:39 +08:00
 egen

前言

由于 A B C D 等原因必须在 Windows 下工作,又需要使用 git 环境,用了一圈 git gui 客户端,觉得还是原生的 git 命令行更好,所以决定在 Windows 下打造一个接近 linux 的 git 命令行环境。

准备

  1. Github for Windows(GHfW): https://windows.github.com/ 传说中最好的 git 客户端
  2. ConEmu: https://github.com/Maximus5/ConEmu/ 极其优秀的 Windows 命令行替代品,最常用的杀手级功能有:支持窗口最大化,直接拖动选择,右键粘贴。其他功能还有一大堆,有兴趣的可以好好研究一下。

安装配置

安装ConEmu

ConEmu 安装使用都非常简单,下载压缩包解压运行对应平台的 ConEmu.exe 即可(64位运行ConEmu64.exe)。

配置ConEmu

使用 ConEmu 替换默认的 cmd.exe 命令行环境,ConEmu 使用了很长时间了,软件本身非常稳定,而且基本没什么兼容性问题,可以安全地替代 cmd.exe。

打开 ConEmu,在界面左下角点右键进入设置菜单:Intergration > Default term。选上“Force ConEmu as default terminal for console applications.”,保存设置。

安装 GHfW

GHfW 依赖 .net framework 4.5 环境,安装程序会自动下载并安装,其中 C 盘需要 2GB 的可用空间,.net 安装完成后需要重启系统,接着自动安装 GHfW,安装完成后桌面会有 GitHub 和 Git Shell 两个应用。

安装常见问题

  1. 如果安装 GHfW 安装过程中出现无法下载文件,可能是网络访问amazon s3服务器速度太慢,请配置代理进行安装。
  2. 如果安装完成后报无法验证文件的错误,请尝试放开 windows 的防火墙并用管理员身份运行安装程序。防火墙配置步骤为:打开“控制面板\所有控制面板项\Windows 防火墙\允许的程序”,点击“允许运行另一程序...”,将 GHfW 添加进去即可。

配置 Git Shell

Git Shell 有几种模式:Windows 命令行,Git Bash和Power Shell,默认是 Power Shell。这里我选用 Git Bash 模式,这个模式最接近原生的 Linux 命令行,但由于 Git Bash 使用 Windows 命令行进行启动,所以我们将其配置成使用 ConEmu 进行启动,具体步骤如下:

  1. 右键点击 Git Shell 快捷方式,选属性,点击“打开文件位置”跳转到 GHfW 安装目录。
  2. 目录下有个类似“PortableGit_ed44d00daa128db527396557813e7b68709ed0e2”的目录,进入该目录。
  3. 找到 sh.exe,将该程序创建快捷方式,比如创建到桌面。
  4. 打开快捷方式的属性,在“快捷方式”标签的“目标”,在路径后面添加参数:--login -i
  5. 其他额外设置,比如把起始位置配置到常用工作目录,设置图标,锁定到任务栏等。

经过以上配置,打开快捷方式应该可以进入和 Linux 几乎完全一样的命令行环境进行 git 命令的各种操作了。
进入各个磁盘可以通过 cd /c, cd /d 的方式直接进入,直接 ls / 是看不到 /c /d 等目录的。

配置 Git Editor

安装 GHfW 之后默认调用的 editor 是 GitPad,但是我没运行成功,单独安装也不行,不知道为何,索性切换到 vim。相关命令为:

git config --global core.editor vim

配置中文支持

虽然现在已经可以运行 git 命令行,但是对中文处理有很多问题,工作中避免不了处理中文,所以下面进行中文相关的配置。
对于中文文件,个人习惯文件内容统一使用 utf-8 编码,这样在多平台使用的时候可以避免很多问题。

Git 中文文件名支持

git add 的时候,中文会显示成"“\344\270\255\346\226\207.txt",使用如下命令进行配置:

git config --global core.quotepath false

ls 显示中文

使用 vim 编辑 ~/.bashrc,添加以下内容(如没有则新建一个):

export LANG=en_US.utf-8
alias ls='ls --show-control-chars --color=auto'

vim 中文支持

使用 vim 编辑 ~/.vimrc,添加以下内容:

set encoding=utf-8
set termencoding=gbk

小技巧

工作的时候经常需要在各个目录之间跳转,可以通过环境变量对目录进行缩写,方便地在多个目录直接切换。
在 ~/.bashrc 添加:

export wd="/d/Projects/MyProject/git"
export doc="/d/Projects/documents/"

以后只需要用 cd $wd, cd $doc 即可进入对应目录。

已知问题

  1. 进入 vim 后出来会导致 ConEmu 无法用鼠标直接选择文字。临时解决方式是:运行 clear 命令重置一下屏幕即可。

参考

52093 次点击
所在节点    程序员
28 条回复
ijse
2014-12-16 11:49:28 +08:00
windows下的替代命令行,我用Console2 官方的程序可能会有中文问题,不过都能解决~
半透明,多标签,快捷键设定都挺好, 可设定Shift+鼠标选择复制文字,可随意调整窗口大小,很方便

目前感觉很够用。我这儿有直接配置好的程序,有要的可以找我要。

装Git的时候,有一步提示如何Adjust your PATH environment, 选第三项, 这样在cmd里就可以直接使用git以及其它Unix命令了。

希望对大家有帮助 。
beginor
2014-12-16 21:48:30 +08:00
我还是喜欢GUI,试试SmartGit吧😀
mingyun
2015-01-11 19:42:43 +08:00
mark了,git的shell也不错呀
tekin
2015-01-21 15:51:25 +08:00
win7上git bash响应速度很慢,有解决办法吗? 还是换cygwin+git
Cu635
2015-09-11 20:41:10 +08:00
现在直接使用 git-for-windows 这个项目就行了。 msysgit 已经停止维护了。

图形界面用 tortoisegit
hongfeiyu
2016-06-04 09:28:28 +08:00
```目录下有个类似“ PortableGit_ed44d00daa128db527396557813e7b68709ed0e2 ”的目录,进入该目录。```
这个目录每次都变怎么办
DuXing
2017-03-18 11:41:38 +08:00
在 conEmu 下,写 commit 时 ( git commit -m ),中文显示乱码怎么办?
egen
2017-03-18 11:53:37 +08:00
@DuXing #27
现在已经转向使用 cmder , git commit 建议结合 vim 使用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/154202

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX