版本控制系統之 Git Everywhere

文明社會的軟體開發活動,我給予如下定義:

  1. 未使用「版本控制系統(Version Control System,VCS)」的軟體專案,不夠格稱「專案」。
  2. 「專案」開始的第一件事,即是導入合適的「版本控制系統(Version Control System)」。
  3. 正確地的使用「版本控制系統」,是專案成員的基本技能。
  4. 新專案的預設選擇是「分散式版本控制系統(DVCS)」,而以 Git 為最優先考量。

「軟體專案」可以很複雜,上述是基本中的基本。

GitHub 以降,以 Git 為基礎的分散式版本控制系統「雲」開始蓬勃發展。導致 Git 熱門的程度,幾乎到了「不懂 Git,不要說你會寫程式」的地步。

太誇大?一點也不。就我的觀察,國外的某些開發者圈圈裡,開發人員會用 Git 幾乎是常識。在台灣,除了開源碼社群專案,我的感覺是公司(不分大小)的軟體專案,技術與觀念多數還停留在十年前:好一點的用 Subversion 管理,差一點的則是 zip, ftp, e-mail。

這樣不太好吧...

Git 代管服務

市面上的 Git 代管服務多不勝數,還沒導入分散式版本控制系統的團隊,不要遲疑了,趕緊看看底下幾個較為有名的服務,挑一個來試先!

GitHub

GitHub 可說是 Git 雲端程式碼代管(這樣說比較嗨,又可衝字數XD)的始祖。其「開源碼專案免付費」的商業模式,使其用戶數短時間內激增。許多重量級的專案也選擇將專案程式碼置於 GitHub。

GitHub 的收費模式是「開源碼專案免費,接著最低每月七美元,不同等級提供數量不等的 Repository。」換算台幣每月 NT$210,一年 NT$2500 的管理費,不算太貴。若能活用 GitHub 提供的各項功能,特別是 Pull Request(Pull Request = Code + Issue + Code Comments),這管理費可說相當超值。

另有非代管的 GitHub Enterprise,將 GitHub 軟體安裝於自家硬體,對於高安全性要求的專案,免去程式碼置於別人家的所衍生的疑慮。以二十人團隊計算,年費美金 $5000,換算台幣約 NT$150000(十五萬)。

BitBucket / Atlassian

BitBucket 為後起之秀(已被 Atlassian 買下),有別於 GitHub,BitBucket 提供五人以下的軟體專案免費使用。

Kiln / FogCreek

Kiln 是《約耳談軟體》一書的作者 Joel Spolsky 的公司提供的程式碼代管服務。初期僅提供另一個「分散式版本控制系統(DVCS)」Mercurial 為基礎的服務(還為它寫了免費的教學文章-Hg Init)。去年(2013)開始提供 Git 介面,雙管其下,任君挑選。

Kiln 的 Kiln for Startup 方案,讓學生或小公司免費使用。搭配該公司的另一項 Issue Tracking 服務 FogBugz,軟體專案必備的兩項工具一次到位,而且免費!

Visual Studio Online / Microsoft

微軟以 Visual Studio Online 加入戰局。稍嫌晚,但老大哥在開發工具的悠遠歷史與良好紀錄,不容小覻。Visual Studio Online 同樣有免費方案,叫做 Visual Studio Online Basic

Visual Studio Online 支援 Git,而且連 IDE(Visual Studio Express)也免費奉送。Visual Studio 2013 與 Git 已經整合良好,此舉應該可以讓微軟生態圈裡的開發人員更容易接受 Git。畢竟門檻降到這麼低了,再不學恐怕對不起列祖列宗了。

結論

老實說,Git 我只學了一點皮毛,但足以應付日常生活所需。Git 進入門檻看似很高,但只要克服(或接受)使用命列令操作的負面心態,其實常用的就那幾個指令而已。而且,愈來愈多 GUI 的工具,實在沒理由不好好利用這個強有力的工具吶。