Gitを使っていると、Gitに関係するアプリが次々に開発される理由が分かってくる。 Gitは、ファイルを保存するだけの道具ではない。 何を変更したのか。 どこから分岐したのか。 何を公開し、何をまだ手元に置くのか。 誰が変更し、どの履歴を残すのか。 別の場所で進んだ変更を、どう統合するのか。 そうした細かな状態を、かなり厳密に扱う。 厳密に扱うと、それまで一つに見えていた処理が分解され、小さな不便が次々に見えてくる。 痒い所が、大量発生する。*1 そこで、人は痒い所をかく道具を作る。 差分を見やすくする。 ブランチを切り替えやすくする。 コミット履歴を整える。 競合を解消する。 不要なファイル…