1.3.2. Mac OS X下安装和使用Git

Mac OS X 被称为最人性化的操作系统,工作在Mac上是件非常惬意的事情,工作中怎能没有Git?

1.3.2.1. 以二进制发布包的形式安装

Git在Mac OS X中也有好几种安装方法。最为简单的方式是安装.dmg格式的安装包。

访问git-osx-installer的官方网站:http://code.google.com/p/git-osx-installer/,下载Git安装包。安装包带有.dmg扩展名,是苹果磁盘镜像(Apple Disk Image)格式的软件发布包。从官方网站上下载文件名类似git-<version>-<arch>-leopard.dmg的安装包文件,例如:git-1.7.3.5-x86_64-leopard.dmg是64位的安装包,git-1.7.3.5-i386-leopard.dmg是32位的安装包。建议选择64位的软件包,因为Mac OS X 10.6 雪豹(或更新版本)完美的兼容32位和64位(开机按住键盘数字3和2进入32位系统,按住6和4进入64位系统),即使在核心处于32位架构下,也可以放心的运行64位软件包。

苹果的.dmg格式的软件包实际上是一个磁盘映像,安装起来非常方便,点击该文件就直接挂载到Finder中,并打开,如图3-1所示。

../_images/mac-install-1.png

图3-1:在 Mac OS X 下打开 .dmg 格式磁盘镜像

其中带有一个正在解包图标的文件(扩展名为.pkg)是Git的安装程序,另外的两个脚本程序,一个用于应用的卸载(uninstall.sh),另外一个带有长长文件名的脚本可以在Git安装后执行的,为非终端应用注册Git的安装路径,因为Git部署在标准的系统路径之外/usr/local/git/bin

点击扩展名为.pkg的安装程序,开始Git的安装,根据提示按步骤完成安装,如图3-2所示。

../_images/mac-install-2.png

图3-2:在 Mac OS X 下安装 Git。

安装完毕,git会被安装到/usr/local/git/bin/目录下。重启终端程序,才能让/etc/paths.d/git文件为PATH环境变量中添加的新路径注册生效。然后就可以在终端中直接运行git命令了。

1.3.2.2. 安装Xcode

App Store安装Xcode

安装完毕,可以运行下面命令查看Xcode安装路径。

$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer

路径并不在PATH中,可以运行xcrun调用在Xcode路径中的Git工具。

$ xcrun git --version
git version 1.7.9.6 (Apple Git-31.1)

为了方便在终端命令行下运行Git,可以用

$ cat /etc/paths.d/xcode
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
/Applications/Xcode.app/Contents/Developer/usr/bin

或者打开 Xcode,Preference -> Downloads -> Components -> Command Line Tools (install)

Mac OS X基于Unix内核,因此也可以很方便的通过源码编译的方式进行安装,但是缺省安装的Mac OS X缺乏相应的开发工具,需要安装苹果提供的Xcode软件包。在Mac随机附送的光盘(Mac OS X Install DVD)的可选安装文件夹下就有Xcode的安装包(如图3-3所示),通过随机光盘安装Xcode可以省去了网络下载的麻烦,要知道Xcode有3GB以上。

../_images/xcode-install.png

图3-3:在Mac OS X下安装Xcode。

1.3.2.3. 使用Homebrew安装Git

Mac OS X有好几个包管理器实现对一些开源软件在Mac OS X上的安装和升级进行管理。有传统的MacPort、Fink,还有更为简单易用的Homebrew。下面就介绍一下如何通过Homebrew包管理器,以源码包编译的方式安装Git。

Homebrew用Ruby语言开发,支持千余种开源软件在Mac OS X中的部署和管理。Homebrew项目托管在Github上,网址为:https://github.com/mxcl/homebrew

首先是安装Homebrew,执行下面的命令:

$ ruby -e \
  "$(curl -fsSL https://gist.github.com/raw/323731/install_homebrew.rb)"

安装完成后,Homebrew的主程序安装在/usr/local/bin/brew,在目录/usr/local/Library/Formula/下保存了所有Homebrew支持的软件的安装指引文件。

运行brew安装Git,使用下面的命令。

$ brew install git

使用Homebrew方式安装,Git被安装在/usr/local/Cellar/git/1.7.3.5,可执行程序自动在/usr/local/bin目录下创建符号连接,可以直接在终端程序中访问。

通过brew list命令可以查看安装的开源软件包。

$ brew list
git

也可以查看某个软件包安装的详细路径和安装内容。

$ brew list git
/usr/local/Cellar/git/1.7.3.5/bin/gitk
...

1.3.2.4. 从Git源码进行安装

如果需要安装历史版本的Git或是安装尚在开发中的未发布版本的Git,就需要从源码安装或通过克隆Git源码库进行安装。既然Homebrew就是通过源码编译方式安装Git的,那么也应该可以直接从源码进行安装,但是使用Homebrew安装Git和直接通过Git源码安装并不完全等同,例如Homebrew安装Git的过程中,是通过下载已经编译好的Git文档包进行安装,而非从头对文档进行编译。

直接通过源码安装Git包括文档,遇到主要的问题就是文档的编译,因为Git文档编译所需要的相关工具没有在Xcode中提供。但是这些工具可以通过Homebrew进行安装。下面工具软件的安装过程可能会遇到一些小麻烦,不过大多可以通过参考命令输出予以解决。

$ brew install asciidoc
$ brew install docbook2x
$ brew install xmlto

当编译源码及文档的工具部署完全后,就可以通过源码编译Git。

$ make prefix=/usr/local all doc info
$ sudo make prefix=/usr/local install \
  install-doc install-html install-info

1.3.2.5. 命令自动补齐

Git通过bash-completion软件包实现命令补齐,在Mac OS X下可以通过Homebrew进行安装。

$ brew search completion
bash-completion
$ brew install bash-completion
...
Add the following lines to your ~/.bash_profile file:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
  . $(brew --prefix)/etc/bash_completion
fi
...

根据bash-completion安装过程中的提示,修改文件~/.bash_profile文件,并在其中加入如下内容,以便在终端加载时自动启用命令补齐。

if [ -f $(brew --prefix)/etc/bash_completion ]; then
  . $(brew --prefix)/etc/bash_completion
fi

将Git的命令补齐脚本拷贝到bash-completion对应的目录中。

$ cp contrib/completion/git-completion.bash \
     $(brew --prefix)/etc/bash_completion.d/

不用重启终端程序,只需要运行下面的命令,即可立即在当前的shell中加载命令补齐。

. $(brew --prefix)/etc/bash_completion

1.3.2.6. 其他辅助工具的安装

本书中还会用到一些常用的GNU或其他开源软件,在Mac OS X下也可以通过Homebrew进行安装。这些软件包有:

  • gnupg:数字签名和加密工具。在为Git版本库建立签名里程碑时会用到。
  • md5sha1sum:生成MD5或SHA1摘要。在研究Git版本库中的对象过程中会用到。
  • cvs2svn:CVS版本库迁移到SVN或Git的工具。在版本库迁移时会用到。
  • stgit:Git的补丁和提交管理工具。
  • quilt:一种补丁管理工具。在介绍Topgit时用到。
在Mac OS X下能够使用到的Git图形工具除了Git软件包自带的gitk
git gui之外,还可以安装GitX。下载地址:

Git的图形工具一般需要在本地克隆版本库的工作区中执行,为了能和Mac OS X有更好的整合,可以安装插件实现和Finder的整合。在git-osx-installer的官方网站:http://code.google.com/p/git-osx-installer/,有两个以OpenInGitGui-OpenInGitX-为前缀的软件包,可以分别实现和git gui以及gitx的整合:在Finder中进入工作区目录,点击对应插件的图标,启动git guigitx

1.3.2.7. 中文支持

由于Mac OS X采用Unix内核,在中文支持上和Linux相近,请参照前面介绍Git在Linux下安装中3.1.5节相关内容。