Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git 维基 对 Git 缘起讲得比较清楚,包括和 Mercurial(hg)的关系。Mercurial vs. Git: How Are They Different? 也可以看看。
本文 以 Git 最新版 2.6.4 为例。Git 命令参考手册 和 GitHub Cheat Sheet 值得花时间浏览一下。Pro Git 2nd Edition (2014) 是本好书,原理讲得到位,免费在线发布,有中文版。
本文以命令行使用方式的安装配置为主,GUI 版的相对简单。
Linux 环境
源码安装 Book Pro Git Installing from Source
解决依赖
yum install curl-devel expat-devel gettext-devel \\ openssl-devel perl-devel zlib-devel
git 各个发布版本 @ GitHub
下载源码:wget https://github.com/git/git/archive/v2.6.4.tar.gz
编译安装
tar -xzf git-2.6.4.tar.gz
cd git-2.6.4
make configure
./configure --prefix=/usr
sudo make all
sudo make install
- 如果碰到问题:"Can't locate ExtUtils/MakeMaker.pm in @INC" during git build,执行
yum install perl-devel
即可。 - 注:因为 Python 2.4 依赖的问题,doc, html, info 等形式的文档没有安装。默认linux下都会安装git,上文prefix配置会覆盖原git。如果要保留原git,prefix 设置为 /usr/local 即可。
echo $PATH
/usr/local/go/bin:/usr/local/bin:/usr/bin:/usr/local/sbin
which git
/usr/bin/git
- 检查版本
$ git --version
git version 2.6.4
- 附:yum 安装
install the basic Git tools on Linux via a binary installer:
yum install git # 不过,采用这种方式,只能安装为:1.8.3.1。
配置
git config
# 对 git 进行配置。
环境参数
$ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)
Mac 环境
安装
[ 命令行 git ]
OS X Yosemite (10.10.4) 上自带的版本是 2.3.8。如果 git 没有安装的,自 OS X Mavericks (10.9) 开始,在终端(Terminal)上直接运行 git,会提示自动安装 Xcode Command Line Tools,这是最简单的方式。
这样安装的 git 通常不是最新版,不过只要 git --version 版本在 2.0 以后的都可用,不是非得使用 git-scm Mac 最新版。
注:git-scm 上的版本是由 Tim Harper 来维护的 git-osx-installer 安装文件,当前项目托管在 sorceforge 上,下载 dmg 安装包后点击即会安装。目前最新版 2.6.3。GUI 客户端 的选择
GitHub Desktop 是一个 git GUI 客户端,虽然她是为 GitHub 用户所开发,但你可以使用她连接任何 gitserver。界面简洁,同时支持 mac 和 windows。Git Hub Desktop 的更多帮助。
配置
略。
Windows 环境
安装
-
推荐 git-for-windows(Git Bash / Git CMD / Git GUI)
git-scm Win 最新版,github 上托管的所有版本,git-for-windows官网。源自 msysgit。国内可能经常无法从 github 下载,可以访问国内的 gitee 码云;
Git Bash 和 *nix 风格保持一致,对于熟悉 Linux 操作的用户来说很方便。
Git GUI 也是很有价值的,其中 Find、Visualize History 功能是很有用的。
除了 git-for-windows 的 git gui,其他 GUI 客户端,比如 SourceTree(有中文界面)、GitHub desktop 也值得推荐;
配置
使用 Git Bash 命令行工具进行操作。
ssh config 配置,和 Linux 下配置方法相同
/etc/ssh/ssh_config ; system-wide file
/c/Users/admin/.ssh/config ; user-specific file
注:admin 是 Win8 下登录用户名。-
Git Bash 的乱码问题
ll,mkdir,vim,rm,git log,git commit,这些常用命令都可以正常显示中文。
git status 时,发现 modified 出现:
形如“idoc/A\347\231\273\350\256\260\350\207\252\345\212\251...”的文件名,其实是“ idoc/A登记自助...”。
git status 中文转义乱码的 解决方案
在 Git Bash 提示符下输入:
git config --global core.quotepath false
core.quotepath 设为 fals e的话,就不会对 0x80 以上的字符进行quote。中文显示正常。
参考
git config 配置文件
- 系统级文件 $(prefix)/etc/gitconfig
本文即 /usr/etc/gitconfig 文件。
git config --system 指定只操作系统级文件。初始不存在,若不存在则无影响。 - 用户级文件 ~/.gitconfig
git config --global 指定只操作用户级文件。初始不存在,若不存在则无影响。 - Repository 级文件 .git/config
--local 对写操作,则只写入 Repository 级文件(默认行为);对读操作,则只从 Repository 级文件读。 - --file config-file 则指定 config-file。
- 注:如果不特别指定哪个配置文件,则依 system/global/local 顺序读取,最后的值覆盖前面的,多值的则合并。
info 文件(work tree)
.git/info/refs
.git/objects/info/packs
2005-2015 十周年
- 10 Years of Git: An Interview with Git Creator Linus Torvalds @ Linux.com;
- 10 Years of Git @ atlassian.com;
【注】
软件版本的快速更新是万物互联时代的显著特征,故本文的知识有可能已经过时,请注意及时下载安装最新稳定版本,充分享受这个时代对于我们的厚馈。
本文有任何不妥之处,请不吝指正。