一般来说linux系统都会自带git,如果没有git请看第一步,如果有git可以跳过第一步


第一步:

首先确保已经安装了如下依赖包:

yum install curl
yum install curl-devel
yum install zlib-devel
yum install openssl-devel
yum install perl
yum install cpio
yum install expat-devel
yum install gettext-devel


然后下载最新的git包:

wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz

下载完成后解压:

tar xzvf git-latest.tar.gz

然后使用cd 进入解压后的文件目录,文件名是git-yyyy-MM-dd日期形式的


第二步:

如果你已经按照第一步下载了,这一步不必先看,先看第三步安装,安装之后再看第二步。


使用git下载git项目

$ git clone git://git.kernel.org/pub/scm/git/git.git

git源比较多,正式的一般是上面这个,还有一个是:

git@github.com:git/git.git


使用git clone 源 下载项目,如果以后有更新,可以使用git pull:

$ git pull --all
正在获取 origin
Already up-to-date.


上面的Already up-to-date.表示现在已经是最新了,如果有变化,git会自动下载合并最新的文件。


如果想要使用某个版本的git,可以使用如下命令查看git版本(标签)


$ git tag -l


上面这个命令会将所有的标签全部输出,下面是输出最近10个的标签


$ git tag -l | tail -10
v1.8.3.1
v1.8.3.2
v1.8.3.3
v1.8.3.4
v1.8.4
v1.8.4-rc0
v1.8.4-rc1
v1.8.4-rc2
v1.8.4-rc3
v1.8.4-rc4

使用如下命令切换标签


$ git checkout v1.8.4
Note: checking out 'v1.8.4'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

git checkout -b new_branch_name

HEAD 目前位于 e230c56... Git 1.8.4



如果切换标签或者分支出错,通常是因为权限的问题,主要是位于.git下面,给用户增加写权限即可,或者chown 给当前用户。

切换回去使用如下命令:


$ git checkout master
之前的 HEAD 位置是 e230c56... Git 1.8.4
切换到分支 'master'
Your branch is up-to-date with 'origin/master'.


第三步:

使用二进制安装git

在git源码目录(第一步的是进入解压后的文件夹,第二步的是进入git clone后的git文件夹)输入如下命令:

autoconf
./configure
make
sudo make install

输入命令查看git版本:

$ git version
git version 1.8.4.474.g128a96c

到这里git就安装成功了。


对于第二步的用户,在git项目中生成了很多的新文件,不过git在.gitignore中全部忽略了,不会对项目产生影响,如果觉得碍眼,使用如下命令清理:

make clean

这个命令会将make产生的文件全部清理干净。

一般清理不会影响到项目改动,如果有影响使用如下命令还原文件:


$ git reset --hard master
HEAD 现在位于 128a96c Update draft release notes to 1.8.5 for the fifth batch of topics


命令中的master需要替换成当前所在版本。


从第一步看到第三步的用户如果想保持git最新,可以查看第二步。