99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

4.2 在服務器上搭建 Git

2018-02-24 15:22 更新

在服務器上搭建 Git

現(xiàn)在我們將討論如何在你自己的服務器上搭建 Git 服務來運行這些協(xié)議。

這里我們將要演示在 Linux 服務器上進行一次基本且簡化的安裝所需的命令與步驟,當然在 Mac 或 Windows 服務器上同樣可以運行這些服務。事實上,在你的計算機基礎架構中建立一個生產(chǎn)環(huán)境服務器,將不可避免的使用到不同的安全措施與操作系統(tǒng)工具。但是,希望你能從本節(jié)中獲得一些必要的知識。

在開始架設 Git 服務器前,需要把現(xiàn)有倉庫導出為裸倉庫——即一個不包含當前工作目錄的倉庫。這通常是很簡單的。為了通過克隆你的倉庫來創(chuàng)建一個新的裸倉庫,你需要在克隆命令后加上 --bare選項按照慣例,裸倉庫目錄名以 .git 結尾,就像這樣:

$ git clone --bare my_project my_project.git
Cloning into bare repository 'my_project.git'...
done.

現(xiàn)在,你的 my_project.git 目錄中應該有 Git 目錄的副本了。

整體上效果大致相當于

$ cp -Rf my_project/.git my_project.git

雖然在配置文件中有若干不同,但是對于你的目的來說,這兩種方式都是一樣的。它只取出 Git 倉庫自身,不要工作目錄,然后特別為它單獨創(chuàng)建一個目錄。

把裸倉庫放到服務器上

既然你有了裸倉庫的副本,剩下要做的就是把裸倉庫放到服務器上并設置你的協(xié)議。假設一個域名為 git.example.com 的服務器已經(jīng)架設好,并可以通過 SSH 連接,你想把所有的 Git 倉庫放在 /opt/git 目錄下。假設服務器上存在 /opt/git/ 目錄,你可以通過以下命令復制你的裸倉庫來創(chuàng)建一個新倉庫:

$ scp -r my_project.git user@git.example.com:/opt/git

此時,其他通過 SSH 連接這臺服務器并對 /opt/git 目錄擁有可讀權限的使用者,通過運行以下命令就可以克隆你的倉庫。

$ git clone user@git.example.com:/opt/git/my_project.git

如果一個用戶,通過使用 SSH 連接到一個服務器,并且其對 /opt/git/my_project.git 目錄擁有可寫權限,那么他將自動擁有推送權限。

如果到該項目目錄中運行 git init 命令,并加上 --shared 選項,那么 Git 會自動修改該倉庫目錄的組權限為可寫。

$ ssh user@git.example.com
$ cd /opt/git/my_project.git
$ git init --bare --shared

由此可見,根據(jù)現(xiàn)有的 Git 倉庫創(chuàng)建一個裸倉庫,然后把它放上你和協(xié)作者都有 SSH 訪問權的服務器是多么容易?,F(xiàn)在你們已經(jīng)準備好在同一項目上展開合作了。

值得注意的是,這的確是架設一個幾個人擁有連接權的 Git 服務的全部——只要在服務器上加入可以用 SSH 登錄的帳號,然后把裸倉庫放在大家都有讀寫權限的地方。你已經(jīng)準備好了一切,無需更多。

下面的幾節(jié)中,你會了解如何擴展到更復雜的設定。這些內(nèi)容包含如何避免為每一個用戶建立一個賬戶,給倉庫添加公共讀取權限,架設網(wǎng)頁界面等等。然而,請記住這一點,如果只是和幾個人在一個私有項目上合作的話,僅僅 是一個 SSH 服務器和裸倉庫就足夠了。

小型安裝

如果設備較少或者你只想在小型開發(fā)團隊里嘗試 Git ,那么一切都很簡單。架設 Git 服務最復雜的地方在于用戶管理。如果需要倉庫對特定的用戶可讀,而給另一部分用戶讀寫權限,那么訪問和許可安排就會比較困難。

SSH 連接

如果你有一臺所有開發(fā)者都可以用 SSH 連接的服務器,架設你的第一個倉庫就十分簡單了,因為你幾乎什么都不用做(正如我們上一節(jié)所說的)。如果你想在你的倉庫上設置更復雜的訪問控制權限,只要使用服務器操作系統(tǒng)的普通的文件系統(tǒng)權限就行了。

如果需要團隊里的每個人都對倉庫有寫權限,又不能給每個人在服務器上建立賬戶,那么提供 SSH 連接就是唯一的選擇了。我們假設用來共享倉庫的服務器已經(jīng)安裝了 SSH 服務,而且你通過它訪問服務器。

有幾個方法可以使你給團隊每個成員提供訪問權。第一個就是給團隊里的每個人創(chuàng)建賬號,這種方法很直接但也很麻煩?;蛟S你不會想要為每個人運行一次 adduser 并且設置臨時密碼。

第二個辦法是在主機上建立一個 git 賬戶,讓每個需要寫權限的人發(fā)送一個 SSH 公鑰,然后將其加入 git 賬戶的 ~/.ssh/authorized_keys 文件。這樣一來,所有人都將通過 git 賬戶訪問主機。這一點也不會影響提交的數(shù)據(jù)——訪問主機用的身份不會影響提交對象的提交者信息。

另一個辦法是讓 SSH 服務器通過某個 LDAP 服務,或者其他已經(jīng)設定好的集中授權機制,來進行授權。只要每個用戶可以獲得主機的 shell 訪問權限,任何 SSH 授權機制你都可視為是有效的。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號