2017-02-17 3 views
2

私はgitでマージコミットの1つを元に戻す必要があるという状況に遭遇しました。私は、次のコマンドを使用:マージコミットを復帰させながら1と2の意義

git revert -m 1 [merge commit id] 

今のgitは以下のように上記のコマンドのための1つ以上のオプションを提供します。

git revert -m 2 [merge commit id] 

私は1及び2

基準の差を取得していません使用:https://www.christianengvall.se/undo-pushed-merge-git/

+0

マージすることは、主に2人の両親を持ち、番号はあなたが元に戻すことを望む – Jehof

答えて

1

git revertのマニュアルでは、

git revert [--[no-]edit] [-n] [-m parent-number] [-s] [-S[<keyid>]] <commit>…​ 
だから -m後の数字は、ここでは2人の親があなたの現在のハッシュが 0ce2ca0b35f59af267241cf4d40d16a3e13ba6f3

であり、2人の両親

df1acf5f54426d30f12c6b4558c3dd922297aae3 
e19b912404ffd3c153ccac3072dbf22396896d2a 

git revert -m 2 0ce2ca0b35f59af267241cf4d40d16a3e13ba6f3 
を持っていることを例に考えると言う

マージが持っているかもしれコミットの親番号を表し

e19b912404ffd3c153ccac3072dbf22396896d2a

Documentation

0

gitリポジトリは単なるコミットのツリーです。マージコミットは、2つ(またはそれ以上)の親を持つコミットです。

単一の親でコミットを元に戻す場合、そのコミットによって導入された変更を元に戻すだけです。

ただし、マージコミットを元に戻す場合は、マージしたブランチからすべての変更を元に戻す必要があります。ただし、ブランチがマージされたという実際の概念はありません。こちらのドキュメントを参照してください

コミット、および -mはあなたがから 戻したい親のgit伝える(すなわち、他の親から導入された変更を元に戻す。):コミットhttps://git-scm.com/docs/git-revert#git-revert--mparent-number

関連する問題