2015-11-12 8 views
6

マージ競合が表示されていましたが、修正できましたが解決済みとマークされていません(つまり、まだ矛盾したファイルをgit addしていません)。この時点で、私はgit diffを行うことができ、結果のファイルがどのように各親と異なるかを、diff形式で表示します。個々の親からgit diffを表示

これまでのところすべて良いです。今度は、結果のファイルが個々の親とどのように違うのかを個別に調べたいと思っていました。確かに、2つの親(チェリーピック、リベースなど)を含むマージ競合の場合は、git diff --oursまたはgit diff --theirsを使用できますが、これをさらに親に拡張するにはどうすればよいですか?

言い換えれば、私が3人の親から紛争を起こした場合、それぞれの親を見ることは可能ですか?

また、--ours--theirsの私の発見は、かなり偶然でした。私はdiffの文脈で文書化されたその使用法を見つけることができませんでした。

+4

をあなたは 'レポにコミット特定ので作業ツリーをdiff'ことができます。これで十分ですか? – user3159253

+1

ファイルがまだ 'C(競合している)'とマークされている場合は、手作業で 'git reset 'する必要があります。そして、あなたが望む任意のバージョンで' git diff'することができます。 –

+0

[gitのコミットされていないマージの親を表示する]の可能な複製(http://stackoverflow.com/questions/13590740/show-parents-of-uncommitted-merge-in-git) – max630

答えて

1

git diff :1:foo.txt :3:foo.txt 

はあなたがやりたいしない場合、私はあなたが

git ls-files -u 

といくつかの一時ファイルを作成するために使用git show $sha1 > $sha1.txtを行い、それらを比較する必要が推測します。

も参照してください:Git compare "base" version with "theirs" version of a conflicted file?

関連する問題