Normalerweise zu erkennen, wenn die Überprüfung merge verpflichtet, tun wir git diff-tree --cc <commit>
(oder einfach git show <commit>
), aber ich bin mit dem folgenden Problem konfrontiert:Wie merge Meinung verpflichtet falsche hunks
Sagen Sie bitte B
in A
und während des Konflikts fusionieren Auflösung müssen Sie ein Stück aus entweder A
oder B
Zweig wählen, um es zu lösen. Nehmen wir an, dass der Brocken in A
den Brocken in B
aus irgendeinem Grund ersetzt, aber da Sie vielleicht nicht davon wissen und einfach durch z.B. Commit-Datum, wählen Sie Hunk aus B
Zweig.
Wenn Sie keine weiteren Änderungen vornehmen, zeigt das Multi-Parent-Differential über git show
keine Diff-Ausgabe an, da das resultierende Hunk vollständig in einem der Eltern-Commits enthalten ist.
weiter zu erarbeiten, wenn Sie diesen Konflikt haben:
<<<<<<< HEAD
aaa
=======
bbb
>>>>>>> b
Und entfernen Sie entweder aaa
Hunk und wählen bbb
, oder umgekehrt, wird die git show <merge_commit>
überhaupt nicht so zeigen alles, Sie zu verhindern, was zu sehen Hunk wurde während der Zusammenführung gewählt.
Dies kann möglicherweise zu einer Regression führen, die schwer zu finden ist.
Wie konnte ich sehen, welche hunks während einer Konfliktlösung ausgewählt wurden?
Edit: was ich will, ist nur die Hunks, die im Konflikt waren (also nicht automatisch zusammengeführt) zu sehen.
Zeigt 'git show' nicht den Unterschied in Bezug auf A? – Jeremy
von [docs] (https://git-scm.com/docs/git-show) und Erfahrung, zeigt identische Ausgabe zu "diff-tree -cc", also in Bezug auf sowohl "A" als auch "B" . – Dwelle
Was meinst du damit, wenn du sagst, dass das Multi-Eltern-Diff über Git-Show nichts auflisten wird? – Jeremy