gitでマージを元に戻す方法について多くの情報がありますが、特定の状況でどのようにこれを行うのかについての一致を見つけることはできません。bitbucketプルリクエストによって作成されたgitマージを元に戻す
誰かが私たちのmaster
ブランチに私たちのdevelop
ブランチをbitbucketのプルリクエストによってマージしました。これはちょうど今日起こったので、マスターブランチで最後に行われたことです(マージコミットの上に他のコミットについて心配する必要はありません)。
注:我々は自分自身をホストするのBitbucketので、私たちは、ビットバケットの古いバージョンを持っています。復帰プル要求オプションはありません。
git reset --hard *<SHA of commit before the merge>*
- これは、マージは、それが決して起こらなかったかのようにコミット削除されます:私は何を読んでから、
は、基本的にはgitでこれを扱うには二つの方法があります。
develop
からmaster
git revert -m 1 *<SHA of the merge commit>*
- これは、それは我々が後に
master
にdevelop
をマージするつもり除いこれは、大丈夫だと思うマージ - によって行われた変更を取り消し、新しいコミットを作成します。私が読んだことから、
develop
をmaster
にマージすると、今日取り戻された変更は含まれないため、これを行う前に復帰コミットを元に戻すことを忘れないでください。誰もこの復帰を覚えていないとき、私は実際にこれが6ヶ月後に問題になることを望んでいません。
TL; DR:私たちは再びこのマージを行うにはしたくないとき、それは今から6ヶ月を引き起こす可能性があるため、問題のgit revert
を行う上躊躇です。私はまた、誰もそれをすることを警告しているようで、bitbucketのプルリクエストに問題を引き起こす可能性があるので、git reset
を実行することには躊躇しています。
2番目に詳しいことはできますか?私は従わない。特にあなたの "前方"の使用と。 6ヶ月間に「開発」から「マスター」へのマージを行う際の復帰を考慮して、「開発」を変更する方法があると言っていますか? –
グラフを追加した例 – max630
詳細な解答をいただきありがとうございます。私はこれを受け入れられた答えとして間違いなくマークしますが、もう一つのことです。マスターでの復帰以来、開発に他のコミットがあったので、マスターから開発への早送りマージはできません。それは何か変わるのだろうか?早送りマージの代わりにマージコミットを行うことでこれを達成できますか? –