初めてコミットを分割してみた
1つのコミットがでかくなりすぎて困っていたので、コミットを分割する術を学びました。 そもそも細かくコミットしろという話なのですが、それはひとまず置いておきます。
test1.txtとtest2.txtの作成を1つのコミットで行ってしまったので、2つに分けたいという場合について書いていきます。
全体の流れは以下の通りです。
1. 分割したいコミットの一つ前のコミットの状態に戻る。
2. test1.txtの作成だけコミットする。
3. test2.txtの作成だけコミットする。
4. 元の作業していた状態に戻る。
手順
1. 分割したいコミットの1つ前のコミットの状態に戻る。
git rebase -i {分割したいコミットID}~の実行~は1つ前と言う意味です。- コミットIDは
git logやgit log --onelineで確認できます。
下の画像の黄色い文字列の部分です。

下の画像のようにテキストエディタが立ち上がるので、変更したいコミットの左端に書いてあるpickをeditに変更して保存、終了します。

すると、下の画像のように説明が表示され、editに変更したコミットをした直後の状態に移動します。

git reset HEAD^の実行
これにより、test1.txtとtest2.txtが作成されただけでコミットもaddもされていない状態になります。
2. test1.txtの作成だけコミットする。
test1.txtをaddしてコミットするだけです。
git add test1.txt git commit -m "test1.txtを追加"
3. test2.txtの作成だけコミットする。
test1.txtのときと同様にコミットします。
4. 元の作業していた状態に戻る
git rebase --continueを実行する。
以下のように表示されればおっけーです。

git logやgit log --onelineで確認するとコミットが書き換わっていることがわかります。

途中で作業を誤ってしまったり、よく分からなくなってしまった場合には、
git rebase --abortを実行することで手順を踏む前の状態に戻ります。