【Git】複数コミットをまとめてrevertする方法
この記事でわかること
- 特定のコミットまでの全てのコミットをまとめてrevertする方法
- revertコミットをまとめる方法
特定のコミットまでの全てのコミットをまとめてrevert
数個程度のコミットでしたら普通に
git revert HEAD^
とか
git revert <コミットID>
とかでいいのですが、100コミットとかあった場合は一つ一つやっていたら日が暮れてしまいます
まとめてrevertするには以下のコマンドを使います
git revert HEAD...HEAD~100 --no-edit
-
HEAD...HEAD~100
... 「今いるコミット」から「100個前のコミット」までを指定 -
--no-edit
... revertコミットのメッセージを編集しない
例えば↓のようなコミット履歴でcommit1~3全てrevertしたい場合は
c59f92d (HEAD -> test) commit3
91cfe7b commit2
32349cf commit1
git revert HEAD...HEAD~3 --no-edit
これで直近3つのコミットを全てrevertできます
e471f93 (HEAD -> test) Revert "commit1"
20f3821 Revert "commit2"
35c18ae Revert "commit3"
c59f92d commit3
91cfe7b commit2
32349cf commit1
が、このままだとrevertコミットが大量にできて履歴が見づらくなってしまうのでrevertコミットをまとめていきます
revertコミットをまとめる
これはrevertコミットに限った話ではないですが
コミットをまとめたいときは以下のコマンドを使います
git rebase -i HEAD~100
-
-i
... エディタを開いて編集できる -
HEAD~100
... 直近何個のコミットをまとめるかを指定(今回は100個)
このコマンドを打つと以下のような画面が出てきます
ここでまとめるベースのコミットをpick
にしてそのコミットにひっくるめたいコミットはsquash
にして閉じると
コミットメッセージの編集画面が出てくるので
適当に編集して
閉じると
c3a9193 (HEAD -> test) commit1~3をrevert
c59f92d commit3
91cfe7b commit2
32349cf commit1
revertでたくさんできたコミットを一つにまとめられます
Author And Source
この問題について(【Git】複数コミットをまとめてrevertする方法), 我々は、より多くの情報をここで見つけました https://qiita.com/hiroya232/items/d79227debe2994624169著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .