Git[1]是由 Linux 之父-托瓦茲 (Linus Torvalds)為了維護 Linux 核心 (kernel)所開發出的版本控管工具。
早於 1991-2002 年間,當時 Linux 系統的核心維護,僅以補丁與備份性檔案 (patches and archived files)的方式實現。而後當 Linux 核心的維護規模日益龐大後,核心團隊決定與當時一家提供商業性版本控制系統-BitKeeper 合作,由其免費提供核心源碼的儲庫 (repository)。
這段蜜月期至 2005 年時,Linux 核心開源社群與 BitKeeper 結束長達三年的合作關係,而這也使得核心團隊必須著手開發屬於他們自己的版本控制工具。從 BitKeeper 的使用經驗中,他們制定了新的版本控制系統需要能達成下列幾個目標:
- 速度。
- 簡單設計。
- 可以給予數以千計並行分支 (parallel branches)的非線性開發模式強力支援。
- 完全分散式。
- 能有效處理如 Linux 核心大型專案的規模 (速度與資料量的考量)。
Git 自 2005 年誕生以來,日益成熟且易於使用,而且還能維持原來的初衷-確實履行上述的目標設定;而最為人樂道的分散式架構,已證明更能有效應用在大型的協同式專案開發。有別於 CVS/Subversion 的中央集權控管方式,Git 可以不需要伺服器就可以在單機上運作版本控制,這也使得原始碼更容易發佈與分享。
目前已有許多大型專案都改用 Git 來做維護管理。除了 Linux Kernel 外,也包括有 Android、Drupal、Git (它本身即為開源專案)、jQuery、Perl、PHP、Ruby on Rails、 ...等。
Git 是在 Linux 下開發的,但基於開源自由度的宗旨下,如今已可以在主流的操作系統上,包括 Linux/Unix、Windows、Mac OS 等平台,均可以很順暢並易於操作 Git 工具。
Git 不僅適用於廣域網路 (WAN)的開源式專案,也完全適用在封閉式的區域網路 (LAN) 環境內。可以說 Git 確實掀起版本控制系統的革新,開發人員更容易操作與管理程式碼的版本變動,因而能伴隨著開發效率上的提昇,讓協同開發這件事變得更輕鬆與快樂。
** 本文內容均收錄於個人所撰寫「活用 Git/GitHub with Android 專案」一書內。**
[1] | 為何取名為「Git」?托瓦茲是有些帶著戲謔的用意來取這個名字的。在英式英語的俚語,「Git」這個字彙代表的是「愚笨 (stupid)」、「令人不愉快 (unpleasant)」的人,甚而在 Linux man page 內對 git 的解釋就是-「the stupid content tracker (愚蠢的內容追蹤器)」。其實托瓦茲的原意就是:讓再愚蠢的使用者,也可以順利操作 Git 這套工具。 |