2013-05-15 18 views
8

Ich muss dem Team vorstellen, welche Änderungen ich bei der Konfliktlösung einer Zusammenführung gemacht habe.Show Konflikt Diff Teil einer Zusammenführung

Ich weiß, das ist irgendwie hart, aber ich glaube, dass es irgendwie möglich ist. Ich habe schon git show -m und git show -c probiert.

Antwort

8

Blick auf die Hash (oder Tag) der merge commit (commit, dass mehrere Eltern hat) und zu tun:

git diff hash hash^1 hash^2 

gibt er ein 3-Wege-diff der Änderungen.

hash^ (oder hash^1) verweist auf die erste Mutter commit von hash
hash^2 Referenzen der zweiten Mutter commit von hash

+0

_Mit dem 'git diff --cc hash hash^1 hash^2' wird das diff auf dieselbe Weise formatiert.' Gitk' zeigt es an. Nicht sicher, welches Ausgabeformat von OP bevorzugt wird, obwohl ..._ Eigentlich, egal ... 'git diff 'tut das standardmäßig, es scheint, wenn Sie es drei Hashes geben ... – twalberg

+1

danke! einen Alias ​​gemacht: 'dc ="! f() {HASH = $ 1; shift 1; git d - $ HASH $ HASH^1 $ HASH^2 $ @;}; f "' – brauliobo

+0

Wenn ich diese Zeile benutze, Ich bekomme 'fatal: mehrdeutiges Argument 'Hash': unbekannte Revision oder Pfad nicht im Arbeitsbaum. Verwenden Sie '-', um Pfade von Revisionen zu trennen, wie folgt: git [ ...] - [ ...]> ' – HelloGoodbye

1

Wenn Sie das Standardwerkzeug gitk verwenden und auf ein Zusammenführungs-Commit klicken, zeigt das untere linke Fenster die Konfliktauflösung an.

+0

wie gitk das tut? – brauliobo

+0

@blauliobo Ich würde davon ausgehen, 'git diff Hash-Hash^1 Hash^2' zu machen, wobei' hash' der Hash des Merge-Commits ist. –

Verwandte Themen