Это в основном две контекстно-зависимые версии ответа Jaap, каждая с бонусом:
Перед запуском git diff --no-index
вы можете установить diff.colorMoved
в конфигурации Git. В качестве альтернативы, вы можете включить параметр --color-moved
вместо того, чтобы устанавливать его глобально.
Настройки diff.colorMoved
используют другой цвет линий, когда строки, удаленные из одного места, отображаются в другом месте в diff ... независимо от того, перемещались ли они внутри файла или перемещались в другой файл, как в рефакторинге.
Полные или почти полные комплекты
У вас есть файлы в каталоге current-version
, которые вы хотите сравнить с некоторыми другими файлами. Если набор файлов, с которыми вы хотите сравнить их в new-version
, практически идентичен по содержанию, просто используйте предложение Jaap:
git diff --no-index current-version/ new-version/
Конкретные файлы для сравнения
Если в одной версии есть только несколько файлов, а в другой множество файлов, вот так:
┌ current-project
| ├ (various folders)
| └ src
| ├ (various files)
| ├ foo.c
| └ bar.c
└ proposed-replacements
├ new-foo.c
└ new-bar.c
... вы можете попытаться сделать так, чтобы определение переименования Git сделало всю работу. Я не знаю, какая версия Git добавляет степень отслеживания переименования, которая необходима для этого (я использую v2.18). Кроме того, я провел тестирование на довольно тривиальном наборе файлов.
Вы действительно не хотите видеть, что большинство файлов "отсутствуют" в proposed-replacements
. Кроме того, вам не нужно беспокоиться о том, чтобы файлы proposed-replacements
имели то же имя / путь, что и в current-project
, поэтому вы оставляете их там, где они были, и помещаете их в фильтр, который включает только переименованные и измененные файлы.
git diff --no-index --diff-filter=RM current-project/ proposed-replacements/
diff --git a/current-project/src/foo.c b/proposed-replacements/new-foo.c
similarity index 65%
rename from current-project/src/foo.c
rename to proposed-replacements/new-foo.c
index dd51990..64445b1 100644
--- a/current-project/src/foo.c
+++ b/proposed-replacements/new-foo.c
@@ -1,4 +1,4 @@
octopus
cow
-dog
tiger
+flamingo
diff --git a/current-project/src/bar.c b/proposed-replacements/new-bar.c
similarity index 87%
rename from current-project/src/bar.c
rename to proposed-replacements/new-bar.c
...