このページは2005年4月ころ、Git登場当初の情報を整理するために作成しました。現時 点では古い情報が中心になっています。2008年3月現在の情報をまとめ た資料として、Software Design 誌に「Git 入門」記事を寄稿しました のでそちらをご覧ください。
従来LinuxカーネルのメンテナンスにはBitKeeperを使っていましたが, いろいろな問題があり,結局2005年4月4日くらいからLinusは新しい バージョン管理システム(VCSとかSCMとかいう)を導入することになりました. その選択の過程で最悪の場合を想定して開発をはじめたgit. 結局2005年4月21日,LinusはgitでこれからLinus Kernelを管理することを発表しました. それ以降の Linux カーネルの開発はgitで行われています. 2005年7月ころにLinusはgitのメンテナンスをJunio Hamanoに移管しました.
ちなみに,'git'は英国俗語由来だそうです,そうであれば発音は'ギット'です.
2005年9月17日時点でのgitの説明をYLUG カーネル読書会にて実施しました.そのときの資料はPDF形式でここにおいてあります.
2005年4月20日の時点でのgitの説明は 4月20日 YLUGカーネル読書会向けに作成した資料(PDF 200K)を御覧ください. bitkeeperの代替として使われているgitがどういうものか,cvs や monotone や arch とどのようにちがうのか,という点について説明しています.
発表資料作成後の4月28日にcogito 0.7がリリースされ, 大幅にcogitoコマンドラインインタフェースと,cogitoがgitを扱う方法が変わりました. ありがたいことに,基本的な操作は簡単になっています.
バックエンドのデータについては,2005年7月くらいからpackedフォーマットというのが導入されました. 試験的に一時的にdelta形式(各リビジョンの差分を保持)を利用していた場合はそのデータは利用できなくなったようです. 通常のフォーマットでは各ファイルはsha1で計算したファイル名で.git/objects/以下に保存されていますが, i-nodeの消費量とファイルシステムブロックの消費量,またレプリケーションの際の効率を考えて 複数のファイルの複数のリビジョンをまとめたpacked形式というのが現在利用できます.
cogito 0.15でLinusのツリーをチェックアウトする方法. (cogito のgitレポジトリから生成したcogitoで確認)
cg-clone http://kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/
ツリーをアップデートするには,ワーキングディレクトリにて:
cg-update
$Id: 200504-git.html.ja,v 1.30 2008/03/22 06:08:44 dancer Exp $