【ssh簡單版git-server 1】自建git-server

來源:互聯網
上載者:User

標籤:git   ssh   簡單 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協助手冊

本文出自 “菜鳥成長記” 部落格,請務必保留此出處http://startlinux.blog.51cto.com/10045010/1754045

【ssh簡單版git-server 1】自建git-server

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.