Es gibt einen Zweig topic1
, der ursprünglich von master
abzweigte. Lassen Sie uns sagen, dass der ursprüngliche Besitzer von topic1
keine ordnungsgemäße Zusammenführung dieses Zweiges wieder in master
gemacht hat, und stattdessen eine Cherry-Pick-Operation, aber ein paar Commits verpasst.Wie kann ich sehen, welche physischen Hunks nicht in einem Zweig von einem anderen sind?
Monate vergehen, und schließlich merke ich topic1
ist immer noch da. An diesem Punkt ist es so lange her, dass ich keine zuverlässige Möglichkeit habe zu bestimmen, ob der kumulative Patch, den topic1
darstellt, auf master
vorhanden ist.
Was ich wollen in der Lage sein git diff topic1..master
aber verstecken alle große Stücke auf master
zu tun, die in topic1
nicht existieren. Im Grunde möchte ich nur einen Teil des Diff sehen, der Änderungen in topic1
zeigt, die in master
nicht vorhanden sind. Ist das möglich? Und wenn ja, wie kann ich es tun?
Ich verwende Git 2.8+
Dies ist eine ausgezeichnete Antwort, aber ich möchte immer noch eine Diff-Lösung dafür sehen. Es werden Szenarien behandelt, in denen: Ein Cherry-Commit am Ziel geändert wurde oder Änderungen von Hand bearbeitet wurden (dh jemand hat einen Fehler doppelt behoben, ohne zu merken, dass er bereits in einem anderen Zweig ausgeführt wurde) oder Commits waren nicht richtig strukturiert und nur Commits teilweise vorhanden auf "Master". –
In diesem Fall denke ich, dass 'git diff master..topic1' Ihnen die Antwort geben soll, nach der Sie suchen - es zeigt Ihnen die Änderungen, die in' topic1' existieren, aber nicht in 'master'. –
nicht ganz, weil das auch alle Änderungen auf 'Master' zeigt, die in' topic1' nicht vorhanden sind, auch wenn 'topic1' an diesem Code keine Änderungen vorgenommen hat. Ich möchte das diff nur von der rechten Seite sehen, basierend auf changeset statt commit. Die nächste Sache, die ich mir vorstellen kann, bringt mich dazu, was ich will: '$ git merge topic1 --no-commit', dann mache' git diff'. Dies wird mir zumindest die Änderungen zeigen, die nicht auf dem Master vorhanden sind, aber ich muss eine Zusammenführung machen, um es zu tun. –