Git は Linux カーネルの開発グループが中心になって開発しているソース変更管理ツールです。以下の特徴を持ちます。 #contents ** 並行開発を支える強力なブランチ機能 Git はマージした履歴を正確に管理し、複数のブランチ間で複雑にマージが行われた場合でも、どのブランチに何が含まれていて、何が含まれていないのかを正確に教えてくれます。また、並行開発の履歴をビジュアルに表示する強力なGUIツールも持っています。 これらは、1つのコミットが複数の親を持てるという内部デザインに起因しているのですが、これまでのSCMには無かった革新的な機能です。 ** 分散SCM 集中リポジトリの場合、コミッターとそれ以外の人との階級差別が発生しますが、分散SCMではこの階級差別がありません。だれもが自分専用のリポジトリエリアを用意することができ、好きなだけブランチを作成できます。そして、ネットワーク的に離れている別のブランチの変更を簡単にマージすることができます。 ** 大規模なソースでも軽快に動作 Linuxカーネルのように100MB超規模のソースでも軽快に動作します。 一般的に分散SCMはその性質上、何の操作をするにもソースツリーの全捜査が行われます。その為、ソース規模が大きくなると、パフォーマンスが急激に落ちます。 ところが、git の場合、どういう仕組みなのかは知りませんが、これまでの分散SCMにはない劇的なスピードで動作します。 ** コミットのやりなおし CVSなどのSCMと異なり、一度行った変更の取り消しが簡単に行えます。 コミットしたあとに修正ミスに気がついた場合、前回のコミットを取り消してコミットしなおすことができます。