Git
3-wayマージの変種を使用する。ブランチのmergeやpullを行う場合のデフォルトである。3-wayマージにおいて共通の祖先が複数ある場合、共通の祖先からのmerge treeを作成し、それをreference treeとして3-wayマージを行う。Linuxカーネル2.6の開発で行われたマージコミットの履歴から、このアルゴリズムを使用するとマージの衝突が少なく、マージ漏れもなかったことが報告されている。さらに、リネームを伴うマージに対しても検出および処理が可能である。
リーナス・トーバルズによれば、
英語のスラングとして、Gitには「バカ」「間抜け」といった類の意味がある。この自虐ネタはもちろん皮肉で、これはリーナスがLinuxの名前を決める際に自身の名前にちなんだ名前を付けるよう強要されたことから来ている。(Linux#名前の由来を参照)
Gitのオフィシャルサイトのウィキでは、“Git”という名前に対して他にもいくつかの解釈がなされている。例としてはGlobal Information Trackerなどが挙げられる。
Gitはブランチのマージ(merge)に対応している。
マージが行われるとマージコミット(英: merge commit)が生成される。コンフリクトが発生しない場合、git mergeがマージコミットを自動生成する。コンフリクトが発生した場合、まず安全な範囲がマージされインデックスとワーキングツリーが更新される。自動マージできないコンフリクト部は、ワーキングツリーに特定の記法で両方の変更が併記された状態になる。ユーザーによるコンフリクト修正後git addをおこない、git commitあるいはgit merge --continueをおこなってはじめてマージコミットが生成される。
マージコミットの実体は2つ以上のparent属性を持つただのコミットオブジェクトである(特別なGitオブジェクトではない)。通常のコミットオブジェクトと同様に変更後ファイルセットがtreeに記録され、更新の元となっている(複数の)コミットがparentに設定されているだけである。