msysgit 的优势是带了一个命令行界面(Git Bash),其启动命令也是整合到 Windows 资源管理器的右键菜单上了,如果你对 Git 的命令行模式情有独钟,那么建议你安装 msysgit,在 Win 平台上继续享用 Git 命令行工作模式。
安装了 msysgit 之后,在 Windows “我的电脑”中任意一个文件夹上面点击鼠标右键,选择“Git Bash Here”就能弹出上图所示的 Git 命令行窗口。这个启动过程可能需要十几秒钟,请耐心等待。最后看到绿色的 $ 就是命令行提示符。输入 git help git 这个命令并回车,就会在浏览器中打开 msysgit 自带的帮助文档 HTML 页面;要离开命令行时,在 $ 提示符下输入 exit 就退出了。
我亲自用过上述三个中的后两个。感觉 TortoiseGit 是最好用的。是不是觉得 TortoiseGit 这个名字有点熟?它就是 TortoiseSVN 客户端的开发团队制作的。因此用过 TortoiseSVN 的用户能够很快熟悉 TortoiseGit 的用法 —— 实际上,有些人惧怕 Git 而抱着 SVN 不放,就是因为 TortoiseSVN 用起来太方便了。现在有了同样方便的 TortoiseGit,你还怕什么呢?
在安装 TortoiseGit 之前,你的 Windows PC 上仍然必须先安装 msysgit。因为此程序提供了 Git 核心。而且安装顺序是:先安装 msysgit,然后安装 TortoiseGit。如果你弄反了,就必须进入 TortoiseGit 的设置界面(右键菜单上 TortoiseGit -> Settings -> General -> MSysGit -> Path),手动指定 Git 核心文件的位置(例如 c:\Program Files\Git\bin)。
TortoiseGit 下载之后是一个可执行的 .msi 格式安装包,直接双击就能安装到 Windows 上,与资源管理器无缝整合。在任何文件夹上点击右键就能看到它的菜单。它有 64-bit 和 32-bit 两种版本,请根据你的 Windows 操作系统来选择合适的安装包。安装完毕需要重新启动电脑。由于目前还没有中文语言包,因此现在使用 TortoiseGit 的话还是英文界面。
TortoiseGit 可以支持 SSH 加密方式的“上传”,早期版本是借助另一款专门实现 SSH 传输的开源软件 Putty 来实现,用户必须另外安装 Putty,然后在 TortoiseGit 的设定选项中给出 Putty 的可执行文件位置(例如 C:\Program Files\Putty\plink.exe)。现在最新的 TortoiseGit 已经自带了 TortoisePlink.exe(在右键菜单中 TortoiseGit -> Settings -> Network -> SSH -> SSH client)。
TortoisePlink.exe 实际上是 Putty 的 Plink.exe 文件的一个衍生产品,功能上比 Putty 可能要差一些。如果你喜欢 SSH 方式,那么还是建议你安装 Putty —— 没准你的电脑上早就安装了。
提示:通过 SSH 方式访问远程服务器还需要认证密钥(Putty Key)文件,每一个服务器都不一样。请参看 Putty 的相关文档,本文不再赘述。
不过别担心,我们只想通过 TortoiseGit 来下载软件最新版本,就不需要搞清楚这个 Key 是什么,怎么用,一样能达到目标。
我们以 Joomla! 1.5 平台上的 SJSB 桥接器组件为例,来演示一下通过 Git 下载 SJSB 最新版本的过程。
在 SJSB 官方网站提供了一个 SVN 下载地址:
svn checkout http://sjsb.googlecode.com/svn/trunk/
有意思的是,你通过 TortoiseSVN for Windows 客户端访问该地址后,只下载到一个 README 文本文件,其内容是:
也就是说,实际上 SJSB 作者已经将原来 SVN 中的代码全部迁移到 Git 文件库去了。上面 git:// 开头的地址就是 Git 的访问地址。
在你的硬盘上某个位置创建一个新目录,例如命名为 sjsb Git,然后在上面点击鼠标右键,在弹出菜单上选择“Git Clone...”,如下图所示:
接下来就会弹出一个对话框,要你填写该 Git Clone 对应的地址。我们输入 SJSB 作者给出的地址即可:
是不是觉得这个对话框很熟悉?酷似 TortoiseSVN 的“检出”对话框。在 URL 一栏填写目标网址,去掉 Load Putty Key 的勾选,然后点击“OK”按钮,就开始了传输远程文件的画面:
画面上那个小乌龟怎么是反着的?呵呵,这个画面上的小乌龟一直在翻跟头,从远程图标翻到本地文件夹图标,代表文件不断在传输。我们截图的时候刚好是翻过身去了。进度条下面的方框中显示了 Git Clone 的来源网址及本地存储位置,也显示了文件总数、已收到文件数量、传输速度等参数。
传输完成后,点击 OK 按钮,就结束了对文件库的下载。
下面,我们要将得到的文件导出为可用的 SJSB 安装包。这个过程与 TortoiseSVN 的导出过程也几乎一样:
在 sjsb Git 这个目录上点击右键,这时弹出菜单的内容有了变化,因为这个文件夹已经内含 Git Clone,所以相应的增加了很多菜单项目:
在 Git 的右键菜单上选择 TortoiseGit -> Export 就弹出了下面的对话框:
在最上面的 Zip File 那里输入导出文件的文件名,注意不要忘记 .zip 扩展名,否则导出后的结果没有扩展名。该输入框右侧的按钮允许用户自定义一个输出位置。如果不指定,默认是存放在当前 Git Clone 的目录内,即 sjsb Git 这个文件夹里面。
下面的几项都不用去管,选择好文件名之后直接点击“OK”按钮,就开始了导出过程。最终在 sjsb Git 文件夹下生成了一个 zip 文件。打开该 zip 文件,可看到 SJSB 桥接器最新的版本:
可以看到,文件日期都是 2009年5月2日的,而 SJSB 官方网站上通过 web 界面下载的 1.0.14a 版本其文件日期是2009年3月16日的。进入 com_smf 目录后,在 XML 文件中可以看到版本号是 1.0.15a-dev2。很显然我们已经通过 Git 得到了作者尚未发布的“开发版”。
以上我们演示了 Git 的“下载”过程,如果你想“上传”呢?也很简单!在本地的 Git Clone 中修改了文件之后,可以在总目录上点击右键,选择 Git Commit -> "master"... 这一项即可(注意是一级菜单,不是次级)。
当你在 PC 上拥有了一个 Git克隆 之后,过一段时间肯定需要更新一下,从“主库”(master)中提取别人提交的新文件,并与你自己 PC 上的 Git Clone 合并。这些操作都可以在右键菜单上找到相应的命令。具体用法请仔细阅读 TortoiseGit 的帮助(右键菜单上 TortoiseGit -> Help)。
我曾经用过 Git 的命令行模式,那真是很痛苦的经历。有了 TortoiseGit,就没有任何理由再说 Git 不好了。既然 Git 已经拥有了 SVN 的全部功能并且还有更多独特的优势,我想 Git 取代 SVN 也是一种必然趋势。
或许你的开发团队正准备搭建自己的 SVN 服务器,那么我建议你不妨直接使用 Git 吧,很明显大家将来都会接受 Git 的。
假如你们已经在用 SVN 了,那么建议你参考一下 SVN+Git 鱼与熊掌兼得 这篇文章,可以同时使用 SVN 和 Git,这样也方便团队成员完成平稳过渡。