コミットはスナップショットであり差分ではないとすると、Squashは何をしているのでしょうか。 コミット(スナップショット)を「まとめる」とは具体的にどのような操作を指すのか、詳しく見ていきます。 おさらい:Gitの内部表現 Gitの内部表現についてざっくり思い出します。Gitオブジェクトは以下の4種類です。 コミット:ある時点におけるリポジトリ内のコンテンツのスナップショット ツリー:ディレクトリ ブロブ:ファイル タグ:今回は関係なし まず、以下のコマンドでサンプルリポジトリを作成します。 mkdir sample-repo cd sample-repo git init echo "sample 1" > sample.txt git add . git commit -m "sample commit 1" sleep 1 echo "sample 2" >> sample.txt