じぶんメモ

プログラミングのメモ、日常のメモとか。

gitで歴史を改ざんするには

直前の履歴を改ざんする

1. コミットをなかったことに

HEADの一つ前に戻る。

$ git reset HEAD~1
$ git push -f origin

2. コミットを修正

対象ファイルを修正し、commit --amendする。

$ git commit --amend
$ git push -f origin

特定の歴史を改ざんする

rebase -iを使い、改ざんしたいコミットまで戻り、修正する。

$ git rebase -i <改ざんしたいコミットのID>
pick c832e Add comment
pick f983e Initial commit

戻りたいコミットを指定し、editにし保存する。

edit c832e Add comment
pick f983e Initial commit

改ざんしたいファイルを修正し、commit --amendする。 その後、git rebase --continueで元に戻す。

$ git rebase --continue

途中、コンフリクトが発生することがあるので、そのときは解消して、
rebase --continueする。
Successfully rebased and updated refs/heads/ブランチ名 と出れば完了。

途中で訳わからなくなってもとに戻したいと思ったら↓のコマンドでOK。

$ git rebase --abort