ssh简单版git-server 1自建git-server

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh简单版git-server 1自建git-server相关的知识,希望对你有一定的参考价值。

环境:centos和ubuntu系统都可以

    CentOS release 6.7    

    git version 1.7.1

    git-server 192.168.50.108

    git-client 192.168.50.112

备注:基于linux系统下做ssh模式的gitserver,需要ssh免密钥。

  

部署:

    git-server:

        1.安装git软件(客户端和服务器端使用的是同一个软件)

          yum install git -y

        2.初始化仓库(鉴于此处是共享仓库,所有要建立裸仓库)

          mkdir /data/sample.git

          git init --bare /data/sample.git

          chown git.git /data/sample.git -R

        3.配置git用户使用的shell为git-shell

          which git-shell(返回结果/usr/bin/git-shell)

          chsh -s /usr/bin/git-shell git

      git-client:

        1.安装git软件

            yum install git -y

        2.配置用户的ssh密钥信息,并提供给git-server

            ssh-keygen -t rsa -C "[email protected]" (与git config的信息一致)         

            假如你是用的是本台机器root用户,生成的密钥默认在/root/.ssh/下

            scp /root/.ssh/id_rsa.pub [email protected]:/tmp

     git-server:

         允许另外一天机器的用户无密钥访问git用户的信息

            mkdir /home/git/.ssh && cat id_rsa.pub >>/home/git/.ssh/authorized_keys

     git-client:

        1.clone远程server的裸仓库

             git clone [email protected].108:/data/sample.git

        2.添加远程仓库作为源仓库

             git remote add origin [email protected]:/data/sample.git

              git remote -v(查看存在的仓库源)

        2.默认clone的是master仓库,可以直接在master更新

              cd sample/

              echo "this is a test file" >test

        3.配置git全局信息

              git config --global user.name ‘test‘

              git config --global user.email ‘[email protected]

        4.添加并提交文件

              git add test

              git commit -m "this is fire commit"

        5.把修改后的文件推送的git-server源做共享

              git push -u origin master

    注:由于代码存在多个版本,且介于安全考虑master会被限制,用户可以自己创建分支,然后请求合并。 所以大多数修改并不是直接在master上。以下是分支操作

        1.clone maste后创建分支   

              git checkout -b fenzhi

              git branch(查看当前所在分支)

        2.添加并提交文件

              echo "hello world " >fenzhifile

                   git add              

              git commit -m ‘fenzhi‘

        3.把新建的分支推送到git-server源做共享

              git push origin fenzhi

  

       git-client:测试                

         1.测试master:换台机器(同样需要免ssh)或换个目录测试

            cd /tmp

            git clone [email protected]:/data/sample.git 

              查看只有一个test文件,这个是我们刚才在master上添加的。

            cd sample/ && cat test

            

         2.测试fenzhi       

               git clone [email protected]:/data/sample.git -b fenzhi

           同样刚才的fenzhi文件也存在,test也存在。因为我们是在master主要功能上修改的。如果文件没有相同的,那就是不同的项目。

                

git帮助手册

本文出自 “菜鸟成长记” 博客,请务必保留此出处http://startlinux.blog.51cto.com/10045010/1745813

以上是关于ssh简单版git-server 1自建git-server的主要内容,如果未能解决你的问题,请参考以下文章

ssh简单版git-server 1git-server权限管理

jenkins+git详细配置及使用方法,为啥提示错误

使用阿里云ECS自建RDS MySQL从库

自建CA证书搭建https服务器

在 git-server 中找不到自定义挂钩的项目存储库

自建git服务器搭建使用记录