zoukankan      html  css  js  c++  java
  • git 服务端安装

    1, 安装基础软件库,

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

    2, 由于git目前还无法使用yum方式安装,只有源码编译安装了。

    下载安装 git 的步骤:

    # wget http://www.kernel.org/pub/software/scm/git/git-2.1.0.tar.gz
    # tar xzf git-2.1.0.tar.gz
    # cd git-2.1.0
    # configure --prefix=/usr/local/git -with-tcltk
    # make
    # make install
    # git --version
    如能显示版本号,则说明安装已经正确了

    3,如果出现错误,则可以操作一下步骤后,再进行安装

    执行:
    yum install perl-ExtUtils-MakeMaker package
    yum install gettext-devel

    ######################################################

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

      adduser git

    5, 创建证书登录:可以通过ssh-keygen来生成

    收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

    6, 初始化Git仓库:

    先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

    $ sudo git init --bare sample.git
    Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:

    $ sudo chown -R git:git sample.git

    7, 禁用shell登录:

    出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成

    8, 克隆远程仓库:

    现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

    $ git clone git@server:/srv/sample.git
    Cloning into 'sample'...
    warning: You appear to have cloned an empty repository.
    剩下的推送就简单了。

     9, 补充。 一切就绪后,开始服务端自动部署的设置

    git clone project.git project-name
    cd project-name
    git checkout xxxbranch

    Server hooks设置, cd到hooks目录

    cp post-receive.sample post-receive 

    编辑post-receive

    cd /path/to/project || exit
    unset GIT_DIR
    git pull

    这样当客户端push时,就会自动部署

     一点要留意,若使用root账户复制post-receive文件,会出现权限问题,

    再次使用

    chown git:git post-receive

    设置权限

    同时还有服务端被部署目录也要设置权限., 首先进入web目录

    chown -R git:git ./.git

    chown -R git:git ./sample

    感觉git的权限控制太严格了.




  • 相关阅读:
    gradle添加阿里云maven库
    来谈谈MySQL的临时表,到底是个什么东西,以及怎么样产生的
    MySQL优化相关参数--先做个记录,以后可能用得到
    对于join操作,MySQL它是咋做的?
    Linux-常用命令记录
    有时候我们自认为有用的索引却并没有被MySQL选择使用?
    C#趟坑: Wait()线程结束时,会忽略子线程
    初次使用Windbg检查C#程序内存
    性能优化之三:将Dottrace过程加入持续集成
    性能优化之二:结构体类型的性能优化
  • 原文地址:https://www.cnblogs.com/maomaochong123/p/5936511.html
Copyright © 2011-2022 走看看