Warum erhalte ich drei Auswahlmöglichkeiten, wenn ich zwischen meinem Code und dem Code einer anderen Person zusammenführe? Sollte es nicht nur meinen Code, den Code der anderen Person und die Ausgabe darunter geben? Die Dokumentation für KDIFF hilft mir nicht beim Verstehen.
Antworten
Zu viele Anzeigen?A bezieht sich auf die Version, auf der Ihr Zusammenführungsziel basiert. Wenn Sie von einem Zweig in den Stamm zusammenführen, wird 'A' die vorherige Stammversion sein.
B ist das, was Sie derzeit in Ihrem lokalen Stammverzeichnis haben, einschließlich lokaler Änderungen.
C ist die Version, die Sie auf B zusammenführen möchten.
Sie machen anscheinend ein dreiseitiges Merge, daher sollte A die Basisrevision sein, auf der B und C basieren, B ist deren und C ist Ihre (denke ich; B und C könnten jedoch auch umgekehrt sein).
A (BASIS) ‐‐> Die Originaldatei, die derzeit im Remote-Repository liegt.
B (LOKAL) ‐‐> Deine Datei. Hier werden nur deine Änderungen im Vergleich zu A angezeigt.
C (REMOTE) ‐‐> Ihre Datei. Hier werden nur ihre Änderungen im Vergleich zu A angezeigt.
Wenn die Änderungen in verschiedenen Codezeilen vorliegen, nimmst du sie von B und C. Wenn die Änderungen in denselben Codezeilen vorliegen (Konflikt), nimmst du entweder von B oder C.
A ist Ihre Elternversion, mit B und C als Kindern.
Das bedeutet, dass B die Änderungen enthält, die von Benutzer1/repo1 an A vorgenommen wurden, und C auch die Änderungen an A enthält, jedoch von einem anderen Benutzer (Benutzer2/repo2)
kdiff bietet Ihnen die Möglichkeit, entweder die Änderungen von B oder C auszuwählen (oder beide) oder auch von Eltern 'A'
Wenn ich git rebase
ausgeführt habe, war meine Beobachtung dass: C - ist das, was sich in meinem_branch lokal befindet (also was ich vor dem Rebase-Vorgang in meinem Editor gesehen habe und Konflikte auftraten). B - der Zweig, auf den ich meinem_branch aufgesetzt habe (sagen wir der Master-Zweig zum Beispiel). A - die Basisrevision von B & C (was in diesem Fall für mich nicht sehr wichtig war)