私は、ファイルDemo.txtがあるマスターブランチを持っています。
AAAAAA
BBBBBB
のDevがこの時点でマスターから分岐された新しいブランチ:それは、次の2行を持っています。マージ時に解決され、リモートにプッシュされたマージの競合があったgitマージを元に戻します。
BBBBBB
は私がマスターをチェックアウトと仮定して、ファイルになるようにDemo.txtに新しい行を追加できます
AAAAAA、すなわちと枝のDevは今Demo.txtが含まれています
AAAAAA
BBBBBB
XXXXXX
同様に、私はその後のDevをチェックアウトし、追加しますDemo.txtへの新しい行のファイルになるように:
AAAAAA
BBBBBB
YYYYYY
は今、私はマスターをチェックアウトし、それにDevのマージ。 3行目のDemo.txtファイルにマージの競合があります。マスターとDevブランチの両方のエントリを保持することによって競合が解決されたとします。新しいマージされたファイルがどのように見えると仮定しましょう:
AAAAAA
BBBBBB
XXXXXX
YYYYYY
今私は、マージをコミットし、リモートリポジトリにプッシュ。マージのコミットIDがabcdef056fgのようなものだとしましょう(例のみ)。マージを押した後、私はマージ競合を解決する際に何らかのエラーが発生していることを発見し、マージをロールバックしたい。また、エラー修復の一環としてDevにもう一度変更を加え、再度マスタにマージする。 Linus Torvaldsのこのリンクの指針( "https://raw.githubusercontent.com/git/git/master/Documentation/howto/revert-a-faulty-merge.txt")によれば、私はabcdef056fgのマージの復帰を元に戻します。例えば、 私はチェックアウトマスターですが、私に新しいコミットを与える "revert -m 1 abcdef056fg"を実行してください。復帰の復帰を得るためにコミットを再び復帰します。元に戻すマージの復帰は私に次のようDemo.txtを与える:私は、その後のDevをチェックアウトし、次の行でそれに新しいファイルDemo2.txtを追加
AAAAAA
BBBBBB
XXXXXX
YYYYYY
;
PPPPPP
I今チェックアウトマスターして、再度のDevをマージします。新しいファイルDemo2.txtがマスターに正しくマージされます。しかし、私はDemo.txtのマージ競合をもう一度解決するオプションは与えられていません。デモで再びマージ競合が表示されたかったとします。TXTは、私は次のように変更することができるように:YYYYYY
XXXXXX
AAAAAA
BBBBBB
YYYYYY
XXXXXX
代わり
のAAAAAABBBBBB
どうすればいいですか?私はマスターブランチをきれいに保ち、それについては何も開発しないので、マスターに直接変更したくありません。すべての開発はDevブランチで行われ、最終的にテストされ、マスターにマージされます。またこれは、単一の競合を伴う人為的な例です。このようなマージには解決されコミットされたいくつかの競合があり、マスター内のすべてのマージを修正したくありません。それで私はどうしますか?
[Gitでマージの競合を解決するにはどうすればいいですか?](https://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git) – kRiZ