【git】一括revertする方法

仕事で必要になったので備忘メモ。

ログの表示

git log --grep="修正" ---pretty=oneline

以下のようにログが表示されます。

r450e06017479b88710e397c745160f1a8ae75526 (origin/feature-#99999, feature-#99999) 修正5
eaa9f773c6407b23549c0beb4b8dd632971c1ed4 修正4
3bd7e4460c99c70bfb35029d9d1e128d3442bfb5 修正3
b54e490594bfba6603e65f5047594841d1132acd 修正2
2ab2828bd19109e2b084569b12c6089e89d84532 修正1

revert

git revert --no-edit 450e06017479b88710e397c745160f1a8ae75526
git revert --no-edit eaa9f773c6407b23549c0beb4b8dd632971c1ed4
git revert --no-edit 3bd7e4460c99c70bfb35029d9d1e128d3442bfb5
git revert --no-edit b54e490594bfba6603e65f5047594841d1132acd
git revert --no-edit 2ab2828bd19109e2b084569b12c6089e89d84532

とした後に、

git rebase -i HEAD~5

以下のようなエディタが起動するので、コミット番号の前にあるコマンドを変更する。
今回は以下のようなしました。

pick 2ab2828 Revert "修正1"
s b54e490 Revert "修正2"
s 3bd7e44 Revert "修正3"
s eaa9f77 Revert "修正4"
s 450e060 Revert "修正5"

それぞれのコマンドの意味。

# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x, exec = run command (the rest of the line) using shell

コミットメッセージの編集

コマンドを変更してエディタを:wqで閉じると、コミットメッセージの確認画面が表示されるので、適宜修正して閉じれば完了です。

未分類Git

Posted by ababa