人生における多くの素晴らしい出来事のように、Gitはわずかな創造的破壊と熱烈な論争から始まりました。
Linuxカーネルは、非常に巨大な範囲のオープンソース・ソフトウェア・プロジェクトの一つです。 Linuxカーネル保守の大部分の期間(1991-2002)の間は、このソフトウェアに対する変更は、パッチとアーカイブしたファイルとして次々にまわされていました。 2002年に、Linuxカーネル・プロジェクトはプロプライエタリのDVCSであるBitKeeperを使い始めました。
2005年に、Linuxカーネルを開発していたコミュニティと、BitKeeperを開発していた営利企業との間の協力関係が崩壊して、課金無しの状態が取り消されました。 これは、Linux開発コミュニティ(と、特にLinuxの作者のLinus Torvalds)に、BitKeeperを利用している間に学んだ幾つかの教訓を元に、彼ら独自のツールの開発を促しました。 新しいシステムの目標の幾つかは、次の通りでした:
-
スピード
-
シンプルな設計
-
ノンリニア開発(数千の並列ブランチ)への強力なサポート
-
完全な分散
-
Linux カーネルのような大規模プロジェクトを(スピードとデータサイズで)効率的に取り扱い可能
2005年のその誕生から、Gitは使いやすく発展・成熟してきており、さらにその初期の品質を維持しています。 とても高速で、巨大プロジェクトではとても効率的で、ノンリニア開発のためのすごい分岐システム(branching system)を備えています(ch03-git-branching.asc参照)。