【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用戶是禁止登錄的,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 "[email protected]" (與git config的信息一致,記錄文件log信息,可查看是誰修改的。)         

            假如你是用的是本臺機器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]:/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幫助手冊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章