[git] コミットの書き換え

A. 直前(1世代前)のコミットを書き換える

1. 編集する(修正する)

2. 修正をステージングする

3. コミットする(修正した内容でコミットをやり直す)


B. 2世代以上前のコミットを書き換える

リベースする

上から下へ 古いコミット ⇒ 新しいコミット の順にリストアップされる。 git log のリストアップ順序と逆。

  • p, pick = コミットをありのまま使う。
  • r, reword = コミットを使う。ただし、コミットメッセージだけは編集する。
  • e, edit = コミットを編集する。amend でコミットをやり直すことができる。
  • s, squash = コミットを使う。ただし直前のコミットと一本化する。コミットメッセージを編集(マージ)する手順あり。
  • f, fixup = コミットを使う。ただし直前のコミットと一本化する。コミットメッセージを編集する手順なし。fixupがマークされたコミットメッセージは破棄する。
  • d, drop = コミットを捨てる。

X. コミットにまとめる。一緒にする。

複数のコミットの歴史を1つにまとめるだけで、リベース後の結果は同一である。

行頭のpicksquash に書き換えて上書き保存する。

Y. コミットをやり直す。

過去のいずれかのコミットを別のコミット(修正)に差し替える。リベースの結果は異なる。ただし、コミットコメント『だけ』を変更したときはリベースの結果は同一である。

1. 修正する(やり直す)コミットを指定する。

行頭のpickedit に書き換えて上書き保存する。

2. 編集する(修正する)。

3. 修正をステージングする。

4. コミットする(修正した内容でコミットをやり直す)。

5. リベースを継続する。


内部リンク