2017-05-09 7 views
2

gitの歴史の中で長いこと前に、誰かが2つのブランチの間違ったマージをしたことがわかります。彼は葛藤していたので、矛盾した変更の多くを単に削除しました。その結果、メインブランチにはこれらの変更が含まれていないことになります(チェックするまではそれを疑うことさえありません)。GITのやり直しが間違っている

支店フィーチャー開発にマージされました。 特集は、私はすべての変更を必要とするので、そう開発は唯一、私は再び開発機能をマージするX.が含まれている、X Y Zのは、しかし、Y及びZは、マージ中に削除された変更が含まれています。しかし、GITはすでに合併していると考えています(矛盾しており、手動で解決されたことは分かっています)。

どのようにしてこのマージを行うことができますか?

いくつかの注意:

  • 私は単純にマージすることはできません、変更がまったく表示されません。
  • チェリーピックはできません。動作しません。
  • GITが重要な使用事例で失敗したことを意味するので、「ファイルをコピーして再コミットする」ことは望ましくありません。
  • 部分的な成功を収めた異なるgitマージ戦略を試しましたが、それは直前に、がコミット開発から始まり(いくつかのファイルうち、最後に私が新しいブランチ機能をマージもちろん開発

内のすべての変更を持っていません間違ったコミット)が動作します。私はすべての必要な変更を見ることができます。しかし、再び、私は新しいブランチにマージすることはできません。

+0

チェリーピックがうまくいかないとはどういう意味ですか?それは再び紛争について警告しますが、それは手動で解決することができます...しかし、うまくいけば今回は正しいです。 – airos

答えて

0

はマージを元に戻す方法についてはGitのブログのエントリを見てください:https://git-scm.com/blog/2010/03/02/undoing-merges.html

それはコミットマージを元に戻すためにGitの復帰を使用することをお勧めします。再統合の問題を解決するために(gitが履歴にあると不満を表明するので)、復帰を元に戻すことを勧めます(再度マージするのではなく)。

関連する問題