Ответ 1
Для этого вам не нужен git, просто используйте diff fileA.php fileB.php
(или vimdiff, если вы хотите сравнить бок о бок)
Извините, если этот вопрос существует, я неожиданно не смог его найти:/
Как я могу выполнить git diff
между двумя файлами внутри одной ветки и тем же commit?
то есть. git diff fileA.php fileB.php
(в идеале, с легко читаемым цветовым кодированием, которое git
предлагает.... или похоже на то, что делает программа BeyondCompare!)
Для этого вам не нужен git, просто используйте diff fileA.php fileB.php
(или vimdiff, если вы хотите сравнить бок о бок)
Если вы хотите использовать git diff
для двух произвольных файлов, вы можете использовать git diff --no-index <file_a> <file_b>
. Для этого два файла не нужно отслеживать в git
.
Если файлы, которые вы хотите сравнить, находятся в вашей рабочей копии, вы можете просто использовать diff
, как указано другими, однако, если файлы находятся в некоторой ревизии, вы можете указать ревизию для каждого файла
git diff <revision_1>:<file_1> <revision_2>:<file_2>
как указано здесь: fooobar.com/questions/11877/...
В вашем случае (указав одну и ту же ревизию для обоих файлов):
git diff <revisionX>:fileA.php <revisionX>:fileB.php
Чтобы сделать обычный 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
.
Если вы хотите разбить два локальных файла в одном каталоге, просто используйте diff.
diff fileA.php fileB.php
Просто используйте обычный diff.
diff -Nua fileA.php fileB.php