美文网首页
服务器端源码安装 git 版本控制器

服务器端源码安装 git 版本控制器

作者: 凉风儿 | 来源:发表于2017-05-08 04:19 被阅读0次

    步骤

    1. 安装依赖
    $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
    
    1. 下载源码,并安装
      压缩包下载地址
      git 仓库地址
    $ tar -zxf git-2.9.3.tar.gz # 解压
    $ cd git-2.9.3 # 进入目录
    $ make prefix=/usr/local/git all doc info # 编译
    $ make prefix=/usr/local/git install install-doc install-html install-info # 安装
    
    1. 将 git 命令添加到环境变量
    $ echo "export PATH=\$PATH:/usr/local/git/bin" >> /etc/profile # 将 git 命令添加到环境变量 PATH
    $ source /etc/profile # 立即生效
    
    1. 创建 git 用户
    $ useradd -s /usr/local/git/bin/git-shell git # 创建 git 用户,为了安全,让 git 用户使用 git-shell
    $ passwd git # 为 git 创建密码
    $ cp -R /usr/local/git-2.9.3/contrib/git-shell-commands /home/git/ # 将命令拷贝到 git 家目录下,git账户ssh连接后才能使用 git
     命令
    $ chown -R git:git /home/git/git-shell-commands # 改变目录的所有者
    $ chmod -R +x /home/git/git-shell-commands # 添加执行权限
    

    PS: 免密码登录请参考ssh免密码登录服务器

    1. 创建 git 裸仓库及相关目录
      服务器端只能创建裸仓库,内容跟客户端.git目录下的文件一致,存储工作目录中文件的变化。
    $ sudo -u git mkdir /git # 创建 仓库存放目录
    $ sudo -u git mkdir /git/demo.git # 创建裸仓库目录
    $ sudo -u git git init --bare /git/demo.git # 使用 git 用户将目录初始化为一个裸仓库
    
    1. 客户端操作
    $ git remote add origin git@serveraddress:/git/demo.git # 客户端关联服务器端仓库
    $ git push -u origin master # push 代码到服务器,初次使用需加 -u 选项
    

    注意:客户端需要先添加文件到缓存区并提交了版本才能push到服务器!

    1. 更改 git-shell 的 list 命令(可选)
      用 git 帐号通过 ssh 登录到服务器,这时使用的是 git-shell,其中的 list 命令可列出当前服务器端的 git 项目,可是默认查找的地址是家目录下,我们这里将 git 仓库更改为了 /git,所以需要更改 list 文件
    $ cat /home/git/git-shell-commands/list # 原文件
    ....
    find -type d -name "*.git" -exec sh -c "$print_if_bare_repo" -- \{} \; -prune 2>/dev/null
    $ vi /home/git/git-shell-commands/list # 修改文件
    find /git -type d -name "*.git" -exec sh -c "$print_if_bare_repo" -- \{} \; -prune 2>/dev/null
    

    更改完毕,客户端登录 ssh git@serveraddress, 然后使用 list 命令即可列出当前仓库下的 git 项目

    报错解决

    1. /bin/sh: cc: command not found
      解决:安装 gcc,yum install gcc -y
    BEGIN failed--compilation aborted at Makefile.PL line 3.
    make[1]: *** [perl.mak] Error 2
    make: *** [perl/perl.mak] Error 2
    

    解决:yum install perl-devel, 如果不行,使用yum install perl-CPAN

    1. /bin/sh: line 1: docbook2x-texi: command not found
      解决:yum install docbook2X ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi

    参考

    https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
    https://github.com/git/git/blob/master/INSTALL
    https://linux.die.net/man/1/git-shell
    http://blog.newbmiao.com/2014/12/28/build-your-git-server-on-linux.html

    相关文章

      网友评论

          本文标题:服务器端源码安装 git 版本控制器

          本文链接:https://www.haomeiwen.com/subject/ogoptxtx.html