环境: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用户是禁止登录的,clone时没有免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 "sample@localhost.com" (与git config的信息一致,记录文件log信息,可查看是谁修改的。)         

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

            scp /root/.ssh/id_rsa.pub root@192.168.50.108:/tmp

     git-server:

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

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

     git-client:

        1.clone远程server的裸仓库

             git clone git@192.168.50.108:/data/sample.git

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

             git remote add origin git@192.168.50.108:/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 'sample@localhost.com'

        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 git@192.168.50.108:/data/sample.git 

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

            cd sample/ && cat test

            

         2.测试fenzhi       

               git clone git@192.168.50.108:/data/sample.git -b fenzhi

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

                

git帮助手册