Zeigt Nicht-Zusammenführungsunterschiede für zwei Commits in git an

8

Ich habe zwei Commits, von denen eines der Vorfahren eines anderen ist. (Sie sind die Start- und Endpunkte eines Zweigs. Ich glaube nicht, dass das wichtig ist, aber ich werde es mit einbeziehen, wenn es so ist.)

Ich möchte den Unterschied zwischen den beiden Commits sehen, aber exklusive Änderungen, die während der Zusammenführungs-Commits (dh alle Commits mit mehr als einem Elternteil) gemacht wurden, die zwischen den beiden Commits gemacht wurden. (Im Grunde möchte ich jedes "echte" Commit, das an den Zweig gemacht wurde, ausgenommen die Zusammenführungen.)

Ist das möglich? Wenn ja, wie bewerkstelligen Sie das?

Falls erforderlich, gehen Sie davon aus, dass während der Zusammenführungs-Commits keine Konflikte gelöst werden, sondern Bonuspunkte für eine Lösung, die elegant mit ihnen umgehen kann.

    
Craig Walker 28.12.2010, 20:15
quelle

3 Antworten

7

Ihre Frage ist etwas mehrdeutig, aber ich denke, dass Sie das wollen.

%Vor%     
Charles Bailey 28.12.2010, 20:21
quelle
2

Ich kannte die Optionen --no-merges -o nicht, aber hier eine andere Lösung (ich vermute, dass Zusammenführungen vom Master gemacht wurden):

%Vor%     
mgautierfr 29.12.2010 15:06
quelle
2

Wenn Ihre Zusammenführungen alle aus demselben Zweig stammen (z. B. master ) oder sich alle in einem anderen Zweig befinden, können Sie den verwenden Lösung von diese Frage .

Angenommen, Sie haben einen Baum wie den folgenden:

%Vor%

und die beiden Commits, die Sie vergleichen möchten, sind b und branch . Dann, anstatt die beiden Commits direkt zu vergleichen, läuft

%Vor%

zeigt alle Änderungen an, die in der Verzweigung ( x,y,z ) durchgeführt wurden. Ausgenommen sind alle Änderungen, die sich auch auf master ( c,d,e , die Zusammenführungen) befinden. Beachten Sie, dass dadurch auch Änderungen am Master ignoriert werden, die noch nicht in der Verzweigung sind.

Aus der Dokumentation:

  

git diff [--options] commit ... commit [-] [...]

     

Dieses Formular dient zum Anzeigen der Änderungen in dem Zweig, der das zweite Commit enthält und bis zum zweiten Commit, beginnend bei einem gemeinsamen Vorfahren beider   verpflichtet. "git diff A ... B" entspricht "git diff $ (git-merge-base   A B) B ".

    
jmiserez 08.08.2016 13:26
quelle

Tags und Links