Подтвердить что ты не робот

Git diff два файла в одной ветки, то же commit

Извините, если этот вопрос существует, я неожиданно не смог его найти:/

Как я могу выполнить git diff между двумя файлами внутри одной ветки и тем же commit?

то есть. git diff fileA.php fileB.php

(в идеале, с легко читаемым цветовым кодированием, которое git предлагает.... или похоже на то, что делает программа BeyondCompare!)

4b9b3361

Ответ 1

Для этого вам не нужен git, просто используйте diff fileA.php fileB.php (или vimdiff, если вы хотите сравнить бок о бок)

Ответ 2

Если вы хотите использовать git diff для двух произвольных файлов, вы можете использовать git diff --no-index <file_a> <file_b>. Для этого два файла не нужно отслеживать в git.

Ответ 3

Если файлы, которые вы хотите сравнить, находятся в вашей рабочей копии, вы можете просто использовать diff, как указано другими, однако, если файлы находятся в некоторой ревизии, вы можете указать ревизию для каждого файла

git diff <revision_1>:<file_1> <revision_2>:<file_2>

как указано здесь: fooobar.com/questions/11877/...

В вашем случае (указав одну и ту же ревизию для обоих файлов):

git diff <revisionX>:fileA.php <revisionX>:fileB.php

Ответ 4

Чтобы сделать обычный gnu diff больше похожим на git diff, я бы рекомендовал следующие параметры:

diff -burN file_or_dir1 file_or_dir2

(где -b игнорировать пробелы, -u унифицированный diff, -r рекурсивный, -N обрабатывать отсутствующие файлы как /dev/null).

Он отлично работает, но не имеет цветов и git -строчный авто-пейджинг практически отсутствует. Если вы хотите исправить оба (я), установите colordiff и используйте его следующим образом:

colordiff -burN file_or_dir1 file_or_dir2 | less -R

Это дает вывод и интерфейс, который очень близок к фактическому git diff.

Ответ 5

Если вы хотите разбить два локальных файла в одном каталоге, просто используйте diff.

diff fileA.php fileB.php

Ответ 6

Просто используйте обычный diff.

diff -Nua fileA.php fileB.php