git はリビジョン管理ファイルシステムです。Linuxカーネルのソースを管理する為に Linus Torvalds 氏 が開発を開始し、現在は、Junio Hamano 氏 がメンテナンスをしています。
フリーソフトであり、GNU General Public License version 2 のライセンスでリリースされています。元は、低レベルのエンジンとしてのみデザインされ、Gogito や StGit といったフロントエンドを作成して使用していましたが、コアの Git プロジェクトが完全なリビジョン管理システムとなったので、現在は Git を直接利用できます。Linuxでの動作をターゲットにしていますが、他の Unix ライクなオペレーティングシステム(BSDやSolaris、Darwin)上でも完全に利用可能です。git は cygwin[4] を使用することで MS Windows でも動かすことができますが、顕著に遅いです。それは、gitがLinux上で高速に動作するファイルシステムの特徴をヘビーに使用している為です[5][6]。

gitの特徴

git のデザインには、大規模な分散開発プロジェクトのメンテナンスをし、ファイルシステムのパフォーマンスに取り組んできた Torvalds 氏の深い知識が統合されている。彼の短期間で動作するシステムを作り出さねばならなかった差し迫った必要性と結合されることにより、以下の特徴を持つことになりました。

  • 非線形開発の強力なサポート。git は高速で便利なブランチとマージをサポートしており、非線形開発の履歴を視覚化・操縦する為の強力なツールを含んでいます。git の核となる仮定は、書かれるよりもマージされることの方が多いという点です。何故なら、変更は多くのレビューアのチェックをパスするからです。Torvalds氏は大抵はマージ作業をしており、直接編集することが少ないので、彼はこの仮定はよく機能すると確信しています。
  • 分散開発。BitKeeper?SVK?Monotone?のように、Gitを使うと各開発者が完全な開発履歴のローカルコピーを取得でき、変更はそれらリポジトリ間でコピーできます。これらの変更は追加した開発ブランチにインポートされ、ローカルの開発ブランチと同じ方法でマージすることができます。リポジトリは HTTP, FPT, ssh, rsync あるいは git プロトコルを使用して容易に公開できます。
  • 大規模プロジェクトの十分なハンドリング。Gitはとても速く動作し、大規模プロジェクトや大きな履歴上で作業したときでもスケールに関しても問題ありません。他のリビジョン管理システムと比べ劇的に速く動作し、操作によっては、いくつものオーダーで速いです。
  • 履歴の暗号化認証。Gitでは、特定のリビジョン(Gitの用語では"commit")をそのcommitまにで導かれる完全な開発履歴に依存するような名前を付けて格納します。一度発行されると、通知なしにはに古いバージョンの変更を変更することはできません。(Monotone?もこれと同じ性質があります)
  • ツールキットのデザイン。Unixの伝統に従い、GItは、C言語で書かれた原始的なプログラムと、それらを包む多くのシェルスクリプトから構成されています。容易にコンポーネント同士を繋げて他の賢いコマンドを作ることができます。
最終更新:2006年12月13日 12:55