Dies sind im Wesentlichen zwei kontextabhängige Versionen von Jaaps Antwort, jede mit einem Bonus.
Komplette oder fast komplette Sätze
Sie haben einige Dateien in einem Verzeichnis A, die Sie mit anderen Dateien vergleichen möchten. Wenn die Menge der Dateien, mit denen Sie sie in B vergleichen möchten, nahezu identisch ist, setzen Sie einfach git config --global diff.colorMoved true
Jaaps Vorschlag:
git diff --no-index A/ B/
Die "Farbe verschoben" wird eine andere Linienfarbe verwenden, wenn von einer Stelle entfernte Linien an anderen Stellen im Diff angezeigt werden, unabhängig davon, ob sie mit der Datei verschoben wurden oder in eine andere Datei verschoben wurden, wie in einem Refactor.
Spezifische Dateien zum Vergleichen
Wenn es nur eine Handvoll Dateien in B und viele Dateien in A gibt,
┌ A | ├ (various folders) | └ src | ├ (various files) | ├ foo.c | └ bar.c └ B ├ new-foo.c └ new-bar.c
... Sie können versuchen, die Umbenennung von Git die Arbeit erledigen zu lassen. Ich weiß nicht, welche Version von Git den erforderlichen Grad an Umbenennungs-Tracking hinzufügt (ich verwende Version 2.18). Die Tests, die ich durchführte, waren mit einer ziemlich trivialen Sammlung von Dateien.
Sie möchten nicht wirklich sehen, dass die Mehrheit der Dateien in B "fehlt". Außerdem möchten Sie nicht, dass Sie den Dateien und Namen von B denselben Namen / Pfad wie in A geben Fügen Sie einen Filter ein, der umbenannte und geänderte Dateien enthält.
git diff --no-index --diff-filter=RM A/ B/
diff --git a/A/src/foo.c b/B/new-foo.c similarity index 65% rename from A/src/foo.c rename to B/new-foo.c index dd51990..64445b1 100644 --- a/A/src/foo.c +++ b/B/new-foo.c @@ -1,4 +1,4 @@ octopus cow -dog tiger +flamingo diff --git a/A/src/bar.c b/B/new-bar.c similarity index 87% rename from A/src/bar.c rename to B/new-bar.c ...