美文网首页
liunx centos7源码安装搭建版本控制器git

liunx centos7源码安装搭建版本控制器git

作者: xiaoer0128 | 来源:发表于2018-05-11 15:43 被阅读0次

服务端

1、查看是否安装git   git --version 

    可以看到我的版本比较新,如果版本过低的话,可以执行下面命令,卸载旧版本  yum remove git

2、安装依赖库    

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

        # yum install gcc perl-ExtUtils-MakeMaker

3、下载解压git的源码包  (https://mirrors.edge.kernel.org/pub/software/scm/git/  有各个版本,我选择了2.9.2版本下载)

         # wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz

         #tar -xzvf  git-2.9.3.tar.gz

4、安装git 编译安装大概几分钟就可搞定。

           # cd  git-2.9.3

           # make prefix=/usr/local/git all    //编译安装到/usr/local/git 目录下面

            # make prefix=/usr/local/git install

5、第4步如果报 undefined reference to `libiconv' 错误请看,如果没报错,请跳过此步骤

        5.1 查看是否存在 /usr/local/lib/libiconv.so 文件,如果没有,则需要安装 libiconv(安装请参考网上教程)

        5.2 如果存在文件,或者已经安装完libiconv库,创建一个软链到/usr/lib

            # ln -s /usr/local/lib/libiconv.so /usr/lib

            # ln -s /usr/local/lib/libiconv.so.2 /usr/lib

        5.3 然后回到刚才编译安装git的目录继续编译

            #   cd  到你刚才解压git的目录下面

            # make configure

            #  ./configure --prefix=/usr/local --with-iconv=/usr/local/libiconv

            # make && make install

6、检查是否安装成功

            # git --version

       git安装完毕

    7、创建一个git 用户组合用户 用来运行git服务

        # groupadd git     //创建组

        # useradd git -g git    //创建git用户,并加入刚才创建的git组里面

        # passwd git   //为git 用户添加密码

8、创建证书,免密登录

    8.1 客户的生成秘钥

        # git config --global user.name "Timi"     //  " " 里面是你要创建的用户名

        # git config --global user.email "Timi@qq.com"

    8.2    查看公钥私钥 

            window 用户在  C盘/用户/当前所登录的用户文件夹/.ssh/

            linux  用户 默认情况下, SSH 密钥存储在其 ~/.ssh 目录下

其中*.pub 为公钥,可以随便透漏给别人

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

        # cd /home/git/          (如果没有git目录,请删除git用户组合用户重新创建git用户组合git用户)

        #  mkdir.ssh

        # chmod700.ssh

        #  touch.ssh/authorized_keys

        #  将公钥复制到 authorized_keys

8.4  Git服务器打开RSA认证 。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,

        即:将配置文件修改

            .RSAAuthentication yes

            .PubkeyAuthentication yes

            .AuthorizedKeysFile .ssh/authorized_keys

9、初始化Git仓库,并将现有的项目加入到git

        9.1    创建一个空仓库 

            # cd /data

            # git init --bare  test.git     //服务器上的Git仓库通常都以.git结尾。

            # chown -Rf git:git test.git 

        9.2  将现有的项目加入git

                # cd /home/www/tp5

                # git init

                # git add .

                # git commit -m '将现有的项目加入git'

                # git remote add origin git@114.215.214.1:/home/data/test.git

                # git push origin master

        9.3,其他开发者就可以使用git clone 将项目克隆到本地,如果需要免密克隆提交,请参考 第8步

                # git clone git@114.215.214.1:/home/data/test.git

10、将git仓库的内容同步到web开发目录

    我的git仓库为 /home/data/test.git

     web目录为 /home/www

    10.1 添加钩子

            # cd /home/data/test.git/hooks

            # vim post-receive

                #!/bin/bash

                git --work-tree=/home/wwwroot/test checkout -f

                sudo chown -Rf www:www /home/www/test 

           //注释  

                添加第二行是因为我的git 仓库所属是git,而开发目录所属为www,所以更改了一下目录所属,当然你也可以不添加,没有添加第二行,直接可以跳到10.2步

                 如果添加了第二行,还要执行一下动作,使git普用户可以使用  chown命令,否则会报错

                # visudo   

添加一行 %git ALL=NOPASSWD:/bin/chown

        10.2 给钩子添加可执行权限

                # chmod +x post-receive

 然后就可以开始从本地开发了,在本地版本库工作区里开发,然后使用git push指令推送到远程裸版本库,钩子会post-receive自动生效,将文件检出到--work-tree目录里,实现同步

写到最后    

1》为了安全起见,可以将git用户禁止shell 登录

    # vim /etc/passwd

    将 git: x :1001:1001:,,,:/home/git:/bin/bash

改为:

git: x :1001:1001:,,,:/home/git:/usr/bin/git-shell

  2》》如果发现已经添加了公钥到服务器,但是还提示输入密码。

    可尝试  chmod 700 /home/git/.ssh           chmod 644 /home/git/.ssh/authorized_keys

相关文章

网友评论

      本文标题:liunx centos7源码安装搭建版本控制器git

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