3.3 在Windows下安装和使用Git(Cygwin篇)
在Windows下安装和使用Git有两种不同的方案:通过安装msysGit[1]或Cygwin[2]来使用Git。在这两种不同的方案下,Git的使用与Linux环境下完全一致。还可以通过msysGit的图形界面软件TortoiseGit[3](也就是在CVS和SVN时代就已经广为人知的Tortoise系列软件的Git版本)来使用Git。TortoiseGit可与资源管理器整合,从而提供Git操作的图形化界面。
首先介绍通过Cygwin来使用Git,并不是因为这是最便捷的方法。如果需要在Windows中快速安装和使用Git,下一节介绍的msysGit才是最便捷的方法。之所以将Cygwin放在前面介绍是因为本书在介绍Git原理和其他Git相关的软件时用到了大量的开源工具,在Cygwin下很容易获得这些开源工具,而msysGit的MSYS[4](Minimal SYStem,最简系统)则不能满足我们的需求。因此,我建议Windows平台下的读者在跟随本书学习Git的过程中首选Cygwin,当对Git有了一定的了解后,无论是msysGit还是TortoiseGit,您都会应对自如。
Cygwin是一款伟大的软件,通过一个小小的DLL(cygwin1.dll)建立了Linux与Windows之间的系统调用和API之间的转换,使得Linux下的绝大多数软件能向Windows迁移。Cygwin通过cygwin1.dll所建立的中间层与VMWare[5]、VirtualBox[6]等虚拟机软件完全不同,不会独占系统资源。像VMWare等虚拟机,只要启动一个虚拟机(操作系统),即使不在其中执行任何命令,同样也会占用大量的内存和CPU时间等系统资源。
Cygwin还提供了一个强大易用的包管理工具(setup.exe),使得几千个开源软件包能在Cygwin下便捷地安装和升级,Git便是其中的一员。
我对Cygwin有着深厚的感情,Cygwin让我能在Windows平台下用Linux的方式更有效率地工作,使用Linux风格的控制台替换Windows黑乎乎的、冷冰冰的、由cmd.exe提供的命令行。Cygwin帮助我逐渐摆脱对Windows的依赖,当我完全转换到Linux平台时,没有感到一丝的障碍。
3.3.1 安装Cygwin
Cygwin的安装非常简单,先在其官方网站http://www.cygwin.com/下载安装程序——一个只有几百KB的setup.exe文件,然后即可开始安装。
安装过程中会让用户选择安装模式:通过网络安装、下载后安装或者通过本地软件包缓存(安装时自动在本地目录下建立的软件包缓存)安装。
(1)如果是第一次安装Cygwin,因为本地尚没有软件包缓存,当然只能选择从网络安装,如图3-4所示。
图 3-4 选择安装模式
(2)选择安装目录,默认为C:\cygwin,如图3-5所示。这个目录将作为Cygwin shell环境的根目录(根卷),Windows的各个盘符将挂载在根卷的一个特殊目录之下。
图 3-5 选择安装目录
(3)设置本地软件包缓存目录,默认为setup.exe所处的目录,如图3-6所示。
图 3-6 选择本地软件包缓存目录
(4)设置网络连接方式是否使用代理等,如图3-7所示。默认会选择第一项:“直接网络连接”。如果一个团队有很多人要使用Cygwin,架设一个能够提供软件包缓存的HTTP代理服务器会节省大量的网络带宽和大量的时间。在Debian/Ubuntu下用apt-cacher-ng[7]就可以非常简单地搭建一个软件包代理服务器。图3-7显示的就是我在公司内网中安装Cygwin时使用内网的服务器bj.ossxp.com作为HTTP代理的情形,端口设置为9999,因为这是apt-cacher-ng的默认端口。
图 3-7 是否使用代理下载Cygwin软件包
(5)选择一个Cygwin源,如图3-8所示。如果在上一个步骤中选择使用HTTP代理服务器,就必须选择HTTP协议的Cygwin源。
图 3-8 选择Cygwin源
(6)从所选的Cygwin源下载软件包索引文件,然后显示软件包管理器界面,如图3-9所示。
图 3-9 Cygwin软件包管理器
Cygwin的软件包管理器非常强大,而且易于使用(如果习惯了其界面)。软件包归类于各个分组中,点击分组前的加号就可以展开分组。在展开的Admin分组中,如图3-10所示(这个截图不是首次安装Cygwin的截图),有的软件包(如libattr1)已经安装过了,因为没有新版本而标记为"Keep"(保持),没有安装过并且不准备安装的软件包则标记为"Skip"(跳过)。
图 3-10 Cygwin软件包管理器展开分组
(7)点击分组名称后面的动作名称(文字"Default"),会进行软件包安装动作的切换。例如图3-11,将Admin分组的安装动作由"Default"(默认)切换为"Install"(安装),会看到Admin分组下的所有软件包都标记为安装(显示具体要安装的软件包版本号)。也可以通过鼠标点击,单独为软件包进行安装动作的设定:可以强制重新安装、安装旧版本,或者不安装。
图 3-11 安装某一分组下的所有软件
(8)当通过软件包管理器对要安装的软件包定制完毕后,点击下一步,开始下载软件包、安装软件包和软件包后处理(postinstall),直至完成安装。根据选择的软件包的多少、网络情况,以及是否架设有代理服务器等情况的不同,首次安装Cygwin的时间可能从几分钟到几个小时不等。
[1]http://code.google.com/p/msysgit/
[3]http://code.google.com/p/tortoisegit/