0

古いブランチで後続の作業が行われ、すべてがdevブランチにマージされましたが、その間にdevで他の作業が行われたという混乱が少しあります。

devから始めて
、5.6.9に分岐し
、devで作業を続けましたが、5.6.9でも、5.6.9で
のすべての作業がdevにマージされ
、最新のdevから分岐が作成されました(この段階までに、約1800のコミットが先に行われます) 5.6.9の)そして5.6.9にマージされました-これは私たちが元に戻したいものです

devでのコミットの間に5.6.9で行われた作業のために、特定のコミットに戻すことができる線形履歴がなく、古いブランチのログとしてマージのコミットハッシュを見つける方法を見つけることができませんすべてのdevが含まれています(つまり、git log --mergesは、私たちが行った5.6.9へのマージではなく、devにマージされたすべての機能ブランチを示します)

gitがすべてのマージを保持する記録はありますか?そして、(プッシュされた)マージを元に戻すように指示する方法はありますか?

4

2 に答える 2

0

マージコミットの場合、sjakubowskiによって提案されているように、gitログでgrepすることができます。

git log --grep Merge

次に、マージコミットを見つけたら、次の方法で元に戻すことができます。

git revert -m 1 <merge_commit_id>

これは機能するはずです。

于 2012-11-10T03:54:03.137 に答える
0

あなたはすることができます

git log --grep Merge

commitidを取得します。

その後:

git rebase --onto <commit-id>^ <commit-id> HEAD

それはそれに対処する必要があります。

于 2012-11-09T13:52:35.957 に答える