2016-08-09 8 views
5

Ich würde gerne wissen, ob es eine Möglichkeit gibt, eine kumulative Git-Diff für mehrere nicht aufeinanderfolgende Commits zu erhalten.Erhalte einen kumulativen Git-Diffs für mehrere nicht-consecutuve commits

Ein Beispiel kann ich ein, was in jedem geändert Festschreibung unter Verwendung:

git diff 123456^ 123456 

Wo "123456" ist ein git-Hash.

Ich kann dies für mehrere Commits gehen. Aber ich möchte jetzt mehrere Diffs machen und die Ausgabe in eins zusammenfassen.

Ein Beispiel

git diff 123456^ 123456 
git diff abcdef^ abcdef 

Aber kombinieren die diff in einem. Aber "123456" und "abcdef" sind keine aufeinanderfolgenden Commits.

Update: Ermöglicht eine Zeile in der Datei xyz sagen geändert:

In commit 123456: from "foo" to "bar" 
in commit abcdef: from "bar" to "oof" 

Ich will nur sehen, dass es von "foo" geändert, nachdem diese "oof" verpflichtet.

git diff 123456 abcdef funktioniert nicht für mich, weil ich nicht alle Änderungen zwischen 123456 und abcdef will.

Ich möchte nichts begehen; möchte nur dies Code für Sicherheit überprüfen.

+0

Sind Sie auf Windows oder Unix? –

Antwort

2

Ich bin mir sicher, jemand hat einen clevereren Ansatz, aber Sie könnten versuchen, alle Ihre gewählten Commits in einen zu zerquetschen und dann das Diff auf diesem einen tun. Du könntest das tun, indem du --cherry-pick mit --no-commit machst. Sobald Sie das Endergebnis haben, können Sie Diff HEAD, um das Diff davon mit Ihrer Basisversion zu bekommen (vorausgesetzt, Sie setzen sich auf diesen Punkt).

+0

Vielen Dank für Ihre Antwort, aber meine Anforderung besteht nur darin, die Änderungen für die Überprüfung von Sicherheitscode zu sehen. Ich muss nichts begehen. – DDS

+0

Sie würden sich nicht verpflichten. Das --no-commit hält das aus. – DavidN

+0

Dies ist in der Tat der Weg zu gehen, mit oder ohne die "-n", um die Arbeit im Arbeitsbaum zu tun, anstatt als eine Reihe von Commits. – torek

0

git diff <commit-A> <commit-B> können die diff zwischen A erzeugen und B, auch wenn AB und sind auf verschiedenen Zweigen oder von verschiedenen repos.

+0

Danke, aber das ist nicht ich bin nach. Ich weiß schon, wie das geht. – DDS

+0

@DDS Nun, da Sie wissen, wie man das macht, würde es Ihnen etwas ausmachen, es hier zu teilen? – Krizz

Verwandte Themen