• <th id="0iybx"></th>

    <button id="0iybx"></button>

    <em id="0iybx"><tr id="0iybx"></tr></em>

    <progress id="0iybx"><track id="0iybx"></track></progress>
    <rp id="0iybx"></rp>
  • <nav id="0iybx"></nav>

  • <rp id="0iybx"></rp>
  • 專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
    動力節點LOGO圖
    始于2009,口口相傳的Java黃埔軍校
    首頁 hot資訊 搭建Git服務器

    搭建Git服務器

    更新時間:2021-12-23 10:09:01 來源:動力節點 瀏覽508次

    很多初學Java的小伙伴會有這樣的疑惑,那就是怎么搭建Git服務器呢?GitHub就是一個免費托管開源代碼的遠程倉庫。但是對于某些視源代碼如生命的商業公司來說,既不想公開源代碼,又舍不得給GitHub交保護費,那就只能自己搭建一臺Git服務器作為私有倉庫使用。

    搭建Git服務器需要準備一臺運行Linux的機器,強烈推薦用Ubuntu或Debian,這樣,通過幾條簡單的apt命令就可以完成安裝。

    假設你已經有sudo權限的用戶賬號,下面,正式開始安裝。

    第一步,安裝git:

    $ sudo apt-get install git

    第二步,創建一個git用戶,用來運行git服務:

    $ sudo adduser git

    第三步,創建證書登錄:

    收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。

    第四步,初始化Git倉庫:

    先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:

    $ sudo git init --bare sample.git

    Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為服務器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到服務器上去改工作區,并且服務器上的Git倉庫通常都以.git結尾。然后,把owner改為git:

    $ sudo chown -R git:git sample.git

    第五步,禁用shell登錄:

    出于安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:

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

    改為:

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

    這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git用戶指定的git-shell每次一登錄就自動退出。

    第六步,克隆遠程倉庫:

    現在,可以通過git clone命令克隆遠程倉庫了,在各自的電腦上運行:

    $ git clone git@server:/srv/sample.git
    Cloning into 'sample'...
    warning: You appear to have cloned an empty repository.

    剩下的推送就簡單了。

    管理公鑰

    如果團隊很小,把每個人的公鑰收集起來放到服務器的/home/git/.ssh/authorized_keys文件里就是可行的。如果團隊有幾百號人,就沒法這么玩了,這時,可以用Gitosis來管理公鑰。

    管理權限

    有很多不但視源代碼如生命,而且視員工為竊賊的公司,會在版本控制系統里設置一套完善的權限控制,每個人是否有讀寫權限會精確到每個分支甚至每個目錄下。因為Git是為Linux源代碼托管而開發的,所以Git也繼承了開源社區的精神,不支持權限控制。不過,因為Git支持鉤子(hook),所以,可以在服務器端編寫一系列腳本來控制提交等操作,達到權限控制的目的。Gitolite就是這個工具。

    小結

    搭建Git服務器非常簡單,通常10分鐘即可完成;

    要方便管理公鑰,用Gitosis;

    要像SVN那樣變態地控制權限,用Gitolite。

    提交申請后,顧問老師會電話與您溝通安排學習

    免費課程推薦 >>
    技術文檔推薦 >>
    返回頂部
    天天做完夜夜做狠狠做

  • <th id="0iybx"></th>

    <button id="0iybx"></button>

    <em id="0iybx"><tr id="0iybx"></tr></em>

    <progress id="0iybx"><track id="0iybx"></track></progress>
    <rp id="0iybx"></rp>
  • <nav id="0iybx"></nav>

  • <rp id="0iybx"></rp>