git的历史
当年教授给我们将git历史的时候,感觉特别有意思,还特崇拜linux之父Linus Torvalds。linux内核开发是来自世界各地的热衷于开源的人士,开始他们使用的版本控制系统是一个商业产品BitKeeper,并免费给linux使用,但由于后期开发人员越来越庞大等等原因,而BitKeeper毕竟是商业产品,终于在2005年与linux内核开源社区结束了合作关系,Linus Torvalds一气之下就自己开发了一款适合linux内核开发管理的版本管理系统Git。现在Linus Torvalds其实很少写代码了,而是将别人提交的代码合并到内核中去,更多时间里,就是在对别人提交的代码说“Yes”或者“No”,或是指导别人该在什么地方进行修改。
Git是分布式的,而SVN不是
Git和SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。
Git将内容按元数据方式存储,而SVN是按文件
所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。
Git分支和SVN分支的不同
SVN的分支就是版本库中的另外一个目录,而Git的分支却是整个版本库的一个快照,而且可以在同一个工作目录下快速的在几个分支间切换。
Git没有一个全局的版本号,而SVN有
SVN的版本号实际是任何一个相应时间的源代码快照。而Git并没有这样的一个全局版本号,这也是Git缺少的最大的一个特征
Git的内容完整性要优于SVN
Git的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
在工作目录中修改某些文件。
对修改后的文件进行快照,然后保存到暂存区域。
提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
具体步骤
一、安装git服务器
服务器环境为:centos;由于CentOS中yum里没有Git,需要手动安装
1、首先需要安装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
如果curl命令没有安装成功,使用如下方法安装:
wget http://curl.haxx.se/download/curl-7.18.0.tar.gz tar xzvf curl-7.18.0.tar.gz cd curl-7.18.0 ./configure make make install
2、安装git
到官网http://git-scm.com/download 下载</span>最新版本,上传至服务器。
#或者使用命令:获取git包
wget https://www.kernel.org/pub/software/scm/git/git-2.6.2.tar.gz #地址调整为最新的地址,当前最新的版本为2.6.2
<span style="font-family: Arial, Helvetica, sans-serif;">tar xzvf git-2.6.2.tar.gz</span>
#进入git源码目录,最后的版本日期不同所以使用xxxx-xx-xx表示
#可以使用“ll -a”看一下目录名称,然后改成对应的目录名(日期不同)
cd git-{date}
autoconf./configure --with-curl=/usr/local
make
出现错误一:
usr/bin/perl Makefile.PL PREFIX='/usr/local/git' INSTALL_BASE='' --localedir='/usr/local/git/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.
make[1]: *** [perl.mak] Error 2
make: *** [perl/perl.mak] Error 2
执行:
yum install perl-ExtUtils-MakeMaker package.
<p><span style="font-family: Arial, Helvetica, sans-serif;">make install</span></p> <span style="white-space:pre"></span>3、<span style="font-family: 'courier new', courier; font-size: 14px; line-height: 25.1875px;">验证是否安装成功:检查安装的版本</span><pre name="code" class="html" style="font-size: 14px;">git --version4、执行命令可查看git安装目录
whereis git
到此处git已经全部安装完毕
二、创建一个
git
用户,用来运行git
服务
5、创建一个git用户,用来运行git服务
sudo useradd -r -s /bin/sh -c 'git version control' -d /home/git git
6、创建一个git用户,用来运行git服务
mkdir -p /home/git
chown git:git /home/git
二、安装git服务器