1. ホーム
  2. git

[解決済み] リモートブランチにプッシュ済みのマージコミットをリバートする方法は?

2022-03-17 06:18:54

質問

git revert <commit_hash> を単独で使用することはできません。 -m を指定する必要があり、かなり迷っています。

どなたか経験したことのある方はいらっしゃいますか?

解決方法は?

その -m オプションは 親番号 . これは、マージコミットには複数の親があり、Git はどの親が本線であり、どの親がアンマージしたいブランチであるかを自動的に判断しないためです。

マージコミットを git log で始まる行に、その親がリストアップされているのがわかるでしょう。 Merge :

commit 8f937c683929b08379097828c8a04350b9b8e183
Merge: 8989ee0 7c6b236
Author: Ben James <[email protected]>
Date:   Wed Aug 17 22:49:41 2011 +0100

Merge branch 'gh-pages'

Conflicts:
    README

このような状況の中で git revert 8f937c6 -m 1 にあるようなツリーを取得することができます。 8989ee0 であり、かつ git revert -m 2 の時と同じようにツリーを復活させます。 7c6b236 .

親IDをより理解するために、実行することができます。

git log 8989ee0 

そして

git log 7c6b236