1. ホーム
  2. git

[解決済み】git revert <hash> not allowed due to a merge but no -m option was given.

2022-01-21 06:02:49

質問

git で 'revert' コマンドを使用して、特定の 'hash' 番号に戻そうとしています。

以下のコマンドを使用しています。

git revert c14609d74eec3ccebafc73fa875ec58445471765

しかし、以下のように返されます。

のエラーが発生しました。コミット c14609d74eec3ccebafc73fa875ec58445471765 はマージですが、-m オプションは指定されていません。
致命的: リバートに失敗しました

新しいgitユーザーとして、何が起こっているのか&amp;これを解決するために何をしなければならないかを説明してください。

このあるコミットに戻したいのですが( c14609d74eec3ccebafc73fa875ec58445471765 を実行したときに表示されます。 git log .

解決方法は?

マージコミットをリバートしようとしているときに、git がどの親コミットにリバートすればいいのかわからなくなってしまった。そのため -m を使えば、どの親を選ぶかを選択することができます。マージコミットを見て、どの親に行きたいかをメモしておいてください。親情報は git log 例えば、以下のようになります。

<ブロッククオート

commit d02ee0f2179def10277f30c71c5d6f59ded3c595

マージ: dd3a24c 2462a52

と実行します。

git revert <hash> -m 1

ここで 1 は親番号1(dd3a24c)を示す。

を元に戻そうとしている場合 に変更します。 そのコミットを実行してください。

git reset --hard <hash>

との違いを理解する。 git revertgit reset を参照して、どちらを使うか決めてください。 git revert はより安全なオプションですが、実際にはあなたが望むことはできません。これは単に、あるコミット(のセット)の変更を戻すだけです。 git reset は、履歴の中の特定のコミットに移動するようにし、履歴を書き換えます。