CentOS下Git服务器搭建

Git 简介

当年教授给我们将git历史的时候,感觉特别有意思,还特崇拜linux之父Linus Torvalds。linux内核开发是来自世界各地的热衷于开源的人士,开始他们使用的版本控制系统是一个商业产品BitKeeper,并免费给linux使用,但由于后期开发人员越来越庞大等等原因,而BitKeeper毕竟是商业产品,终于在2005年与linux内核开源社区结束了合作关系,Linus Torvalds一气之下就自己开发了一款适合linux内核开发管理的版本管理系统Git。现在Linus Torvalds其实很少写代码了,而是将别人提交的代码合并到内核中去,更多时间里,就是在对别人提交的代码说“Yes”或者“No”,或是指导别人该在什么地方进行修改。

Git是分布式版本控制系统的一个完美实现,它与集中式版本控制系统SVN的基本区别如下:

  • 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 目录中

Git 具体安装步骤

安装Git服务端

服务器环境为:centos;由于CentOS中yum里没有Git,需要手动安装
  1. 首先需要安装git的依赖包

    yum install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel
  2. 下载git
    到官网http://git-scm.com/download 下载最新版本,上传至服务器。或者使用命令:获取git包

    地址调整为最新的地址,当前最新的版本为2.6.2
    wget https://www.kernel.org/pub/software/scm/git/git-2.6.2.tar.gz

  3. 解压安装git

    • 执行解压命令:
      tar xzvf git-2.6.2.tar.gz

    • 进入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

    • 执行安装命令:
      make install

    • 验证是否安装成功:检查安装的版本:
      git --version

    • 执行命令可查看git安装目录:
      whereis git

  4. 创建一个git用户,用来运行git服务

    • 创建一个git用户:
      sudo useradd -r -s /bin/sh -c 'git version control' -d /home/git git

    • 创建用户操作目录:
      mkdir -p /home/git
      chown git:git /home/git

  5. 初始化Git仓库

    小知识: /srv: 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内。

    • 先选定一个目录作为Git仓库
      cd 仓库目录

    • 初始化创建一个git空仓库(假定是/srv/ project.git,在/srv/目录下输入命令):
      git init --bare project.git

    • 更改仓库权限(Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git):
      chown -R git.git project.git
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值