匿名
尚未登入
登入
DILA Wiki
搜尋
檢視 Pro Git 4.2 在伺服器部署 Git 的原始碼
出自DILA Wiki
命名空間
頁面
討論
更多
更多
頁面操作
閱讀
檢視原始碼
歷史
←
Pro Git 4.2 在伺服器部署 Git
由於下列原因,您沒有權限進行編輯此頁面的動作:
您請求的操作只有這個群組的使用者能使用:
使用者
您可以檢視並複製此頁面的原始碼。
開始架設 Git 伺服器的時候,需要把一個現存的倉庫匯出為新的純倉庫(bare repository)——不包含當前工作目錄的倉庫。方法非常直截了當。 把一個倉庫克隆為純倉庫,可以使用 clone 命令的 --bare 選項。純倉庫的目錄名以 .git 結尾, 如下: <syntaxhighlight lang="XML"> $ git clone --bare my_project my_project.git Initialized empty Git repository in /opt/projects/my_project.git/ </syntaxhighlight> 該命令的輸出有點迷惑人。由於 clone 基本上等於 git init 加 git fetch,這裡出現的就是 git init 的輸出,它建立了一個空目錄。實際的物件轉換不會有任何輸出,不過確實發生了。現在在 my_project.git 中已經有了一份 Git 目錄資料的副本。 這大體上相當於: <syntaxhighlight lang="XML"> $ cp -Rf my_project/.git my_project.git </syntaxhighlight> 在設定檔中有幾個小改變;不過從效果角度講,克隆的內容是一樣的。它僅包含了 Git 目錄,沒有工作目錄,並且專門為之(譯注: Git 目錄)建立了一個單獨的目錄。 =將純倉庫轉移到伺服器= 有了倉庫的純副本以後,剩下的就是把它放在伺服器上並設定相關的協定。假設一個名稱為 git.example.com 的伺服器已經架設好,並可以通過 SSH 訪問,而你想把所有的 Git 倉庫儲存在 /opt/git 目錄下。只要把純倉庫複製上去: <syntaxhighlight lang="XML"> $ scp -r my_project.git user@git.example.com:/opt/git </syntaxhighlight> 現在,其他對該服務器具有 SSH 存取權限並可以讀取 /opt/git 的用戶可以用以下命令克隆: <syntaxhighlight lang="XML"> $ git clone user@git.example.com:/opt/git/my_project.git </syntaxhighlight> 假如一個 SSH 用戶對 /opt/git/my_project.git 目錄有寫入許可權,他會自動具有推送許可權。如果在執行 git init 命令的時候加上 --shared 選項,Git 會自動對該倉庫加上群組寫入權限。 <syntaxhighlight lang="XML"> $ ssh user@git.example.com $ cd /opt/git/my_project.git $ git init --bare --shared </syntaxhighlight> 可見選擇一個 Git 倉庫,創建一個純的版本,最後把它放在你和同事都有 SSH 訪問權的伺服器上是多麼容易。現在已經可以開始在同一專案上密切合作了。 值得注意的是,這的的確確是架設一個少數人具有連接權的 Git 服務的全部——只要在伺服器上加入可以用 SSH 接入的帳號,然後把純倉庫放在大家都有讀寫許可權的地方。一切都做好了,無須更多。 下面的幾節中,你會瞭解如何擴展到更複雜的設定。這些內容包含如何避免為每一個用戶建立一個帳戶,給倉庫添加公共讀取許可權,架設網頁介面,使用 Gitosis 工具等等。然而,只是和幾個人在一個不公開的專案上合作的話,僅僅是一個 SSH 伺服器和純倉庫就足夠了,請牢記這一點。 =小型安裝= 如果設備較少或者你只想在小型的開發團隊裡嘗試 Git ,那麼一切都很簡單。架設 Git 服務最複雜的方面之一在於帳戶管理。如果需要倉庫對特定的使用者可讀,而給另一部分用戶讀寫許可權,那麼訪問和許可的安排就比較困難。 ==SSH 存取== 如果已經有了一個所有開發成員都可以用 SSH 訪問的伺服器,架設第一個伺服器將變得異常簡單,幾乎什麼都不用做(正如上節中介紹的那樣)。如果需要對倉庫進行更複雜的存取控制,只要使用伺服器作業系統的本地檔訪問許可機制就行了。 如果需要團隊裡的每個人都對倉庫有寫入許可權,又不能給每個人在伺服器上建立帳戶,那麼提供 SSH 連接就是唯一的選擇了。我們假設用來共用倉庫的伺服器已經安裝了 SSH 服務,而且你通過它訪問伺服器。 有好幾個辦法可以讓團隊的每個人都有訪問權。第一個辦法是給每個人建立一個帳戶,直截了當但過於繁瑣。反復的運行 adduser 並且給所有人設定臨時密碼可不是好玩的。 第二個辦法是在主機上建立一個 git 帳戶,讓每個需要寫入許可權的人寄送一個 SSH 公開金鑰給你,然後將其加入 git 帳戶的 ~/.ssh/authorized_keys 文件。這樣一來,所有人都將通過 git 帳戶訪問主機。這絲毫不會影響提交的資料——訪問主機用的身份不會影響commit的記錄。 另一個辦法是讓 SSH 伺服器通過某個 LDAP 服務,或者其他已經設定好的集中授權機制,來進行授權。只要每個人都能獲得主機的 shell 訪問權,任何可用的 SSH 授權機制都能達到相同效果。
返回到「
Pro Git 4.2 在伺服器部署 Git
」。
導覽
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
wiki工具
wiki工具
特殊頁面
頁面工具
頁面工具
使用者頁面工具
更多
連結至此的頁面
相關變更
頁面資訊
頁面日誌