2013-05-22 5 views
44

В HEAD (последняя фиксация) у меня есть файл с именем foo. В моем рабочем дереве я переименовал его в bar, а также отредактировал его.git diff между двумя разными файлами

Я хочу git difffoo в HEAD и bar в моем текущем рабочем дереве.

+13

Я думал, что этот вопрос (из названия) может касаться использования git diff для двух файлов, которые необязательно находятся в репо. Я обнаружил, что для этого используется флаг -no-index. 'git diff --no-index --word-diff old_file.txt new_file.txt' (--word-diff выделяет изменения по слову, а не только строку, что очень полезно для длинного текста). – Pat

+0

@Pat +1 Точно, что я искал –

ответ

68

Отъезд в --find-renames опции git-diff в https://www.kernel.org/pub/software/scm/git/docs/git-diff.html

Или указать пути в явном виде:

git diff HEAD:full/path/to/foo full/path/to/bar

(Заслуга twaggs из Git: How to diff two different files in different branches?)

+1

Спасибо, это работает !! И dang, я думал, что исследовал, прежде чем задавать этот вопрос ... Я отметил этот вопрос как дубликат того, с которым вы связали – MiJyn

+0

Я хочу упомянуть, что вы можете сравнить любые два файла с помощью 'git diff ' even если они не находятся в хранилище git. – mitenka

1

Если вы используете черепаховый мерзавца вы можете щелкнуть правой кнопкой мыши по файлу и git a diff: Щелчок правой кнопкой мыши по первому файлу и через TortoiseGit подменю выберите «Diff позже» Затем на второй файл, вы можете также щелкнуть правой кнопкой мыши на этом, перейдите в подменю TortoiseGit, а затем выберите «Diff с yourfilenamehere.txt»

-3

Использование PhpStorm, я просто скопировать предыдущий код фиксации и сравнить его с текущей версией, используя встроенный инструмент «сравнить с буфером обмена».

Смежные вопросы