Git --fast-version-control

Chapter 4

伺服器上的 Git

到目前為止,你應該已經學會了使用 Git 來完成日常工作。然而,如果想與他人合作,還需要一個遠端的 Git 倉庫。儘管技術上可以從個人的倉庫裡推送和拉取修改內容,但我們不鼓勵這樣做,因為一不留心就很容易弄混其他人的進度。另外,你也一定希望合作者們即使在自己不開機的時候也能從倉庫獲取資料 — 擁有一個更穩定的公共倉庫十分有用。因此,更好的合作方式是建立一個大家都可以訪問的共用倉庫,從那裡推送和拉取資料。我們將把這個倉庫稱為 "Git 伺服器";代理一個 Git 倉庫只需要花費很少的資源,幾乎從不需要整個伺服器來支援它的運行。

架設一台 Git 伺服器並不難。第一步是選擇與伺服器通訊的協定。本章第一節將介紹可用的協議以及各自優缺點。下面一節將介紹一些針對各個協議典型的設置以及如何在伺服器上實施。最後,如果你不介意在他人伺服器上保存你的代碼,又想免去自己架設和維護伺服器的麻煩,倒可以試試我們介紹的幾個倉庫託管服務。

如果你對架設自己的伺服器沒興趣,可以跳到本章最後一節去看看如何申請一個代碼託管服務的帳戶然後繼續下一章,我們會在那裡討論分散式源碼控制環境的林林總總。

遠端倉庫通常只是一個裸倉庫(bare repository) — 即一個沒有當前工作目錄的倉庫。因為該倉庫只是一個合作媒介,所以不需要從硬碟上取出最新版本的快照;倉庫裡存放的僅僅是 Git 的資料。簡單地說,裸倉庫就是你工作目錄中 .git 子目錄內的內容。