Windows下使用Mintty运行Git Bash
最近从Linux上下写C++换到Windows上写C#.感觉大为不同. 最大的变化是 --- 各种GUI工具啊...满天飞,各种找菜单.不习惯!! 怀念bsh的灵活啊~~~
为何要使用Git
Git是当下最流行的版本管理器了. 好处很多,不过最重要的其实就一点
- 不用总是访问服务器,每个人都有整个仓库
ps:Git恐怕是老板最爱了,大家回家连不上公司服务器也可以在家加班做commit啊 ... :(
Window上的Git
Git是从Linux平台上发展来的. Linux平台的特点就是大家都狂敲命令行啊.于是Windows版本的Git也自带了基于MSYS移植过来的bash.这个bash在Windows开了一个简单模拟Linux命令环境的窗口.
本猪作为从Linux转到Windows环境的码农, 是很怀念bash的.天生贱命,最不喜欢使用Git的GUI工具那种总要手离开键盘的感觉.
干掉难看的CMD
但是CMD窗口实在简陋了,简直惨不忍睹.严重败坏心情.
用了裸奔的bsh后一直怀念Cygwin下的Mintty. 但是光为了一个Mintty就安装动辄上N个G的Cygwin似乎也太重口味了.幸好,有人把Mintty单独抠出来了. 真是好人啊,只需要拷贝一个exe文件就能用了!!
既然是为了MSYS和Cygwin通用的,那么也就应该能运行Git Bash喽.试了一下,果然可以.
步骤
- 先安装Git Windows版本(废话)
- 去[Google Code这里](Mintty 下载Mintty
- 解压mintty.exe到 {Git的安装目录}\bin 下,这个bin目录下有关键的bash.exe
桌面上放一个快捷方式, 目标指向mintty,再加上一些参数,以我的Win7 64为例子:
"C:\Program Files (x86)\Git\bin\mintty.exe" /bin/sh --login -i
运行. 一切OK! 和cmd说88啦!
嗯, 等等 这个时候如果你去设置mintty窗口的属性,十有八九会弹出一个错误提示框,告诉你找不到/home/{username}, 就像这样
有了提示,解决也很简单.到git的安装目录下,新建一个子目录: home{username}就行了.比如以administrator登录,就新建目录 home\administrator. 在Mintty中直接输入以下命令也可以:
mkdir -p /home/$USERNAME
然后去设置mintty,你会发现/home/$USERNAME目录下多了一个.minttyrc文件.这个就是保存的设置文件了. (和大多数的linux程序一样,都是文本,没有该死的注册表)
终于看到熟悉的绿字黑底了,泪奔...
把Mintty加入到右键菜单
保存如下代码到.reg文件然后注入注册表即可 (mintty.exe的目录按照实际自行修改)
Windows Registry Editor Version 5.00
[HKEYCLASSESROOT\folder\shell\minttyshell]
@="Open Mintty Prompt Here"
[HKEYCLASSESROOT\folder\shell\minttyshell\command]
@="\"C:\Program Files (x86)\Git\bin\mintty.exe\" /bin/env CHEREINVOKING=1 /bin/bash -l -i"
[HKEYCLASSESROOT\Directory\shell\minttyshell]
@="Open Mintty Prompt Here"
[HKEYCLASSESROOT\Directory\shell\minttyshell\command]
@="\"C:\Program Files (x86)\Git\bin\mintty.exe\" /bin/env CHEREINVOKING=1 /bin/bash -l -i"
[HKEYCLASSESROOT\Directory\Background\shell\minttyshell]
@="Open Mintty Prompt Here"
[HKEYCLASSESROOT\Directory\Background\shell\minttyshell\command]
@="\"C:\Program Files (x86)\Git\bin\mintty.exe\" /bin/env CHERE_INVOKING=1 /bin/bash -l -i"
小小不足
Git Bash自带的vi在mintty中不能正常使用.不过这个问题可以通过自己安装gvim解决. 安装gvim,把gvim.exe所在路径加入Path就可以了.