Можно ли найти разницу между двумя произвольными текстовыми файлами с помощью Git?

Эти файлы не обязательно контролируются версиями.

FYI: Я использую git и git gui для windows xp.

Ответ 1

Да, git diff работает с двумя неверсионными путями, как файлами, так и каталогами (рекурсивная разность). Я не думаю, что вы можете сделать это из графического интерфейса; вам нужно будет использовать командную строку.

Если вы хотите графический интерфейс, я предлагаю вместо этого установить kdiff3. Он также может использоваться git в качестве инструмента слияния, чем если бы вы установили diff.tool = kdiff3, diff.guitool = kdiff3 и difftool.kdiff3.path = path-to-kdiff3.exe

Ответ 2

Вам нужно использовать опцию -no-index, если один или оба файла не находятся за пределами репозитория git:

git diff --no-index path/to/file.txt path/to/other/file.txt

Вы также можете использовать git diffftool с теми же аргументами, чтобы вызвать инструмент GUI.

Ответ 3

В git bash вы можете использовать только файл diff1 файла2
Использование tortoisegit - выберите оба файла, щелкните правой кнопкой мыши выберите tortoisegit и нажмите diff.

Ответ 4

Вы можете сделать это не только с помощью git diff (с помощью git diff --no-index -- file1 file2), но и теперь (Git 2.22, Q2 2019) снова с помощью git difftool !
Это было невозможно в течение последних двух лет.

" git difftool " теперь может работать вне хранилища.

См. Коммит 20de316, коммит 1a85b49, коммит 1dcda05 (14 марта 2019 г.) от Johannes Schindelin (dscho).
(Объединено Junio C Hamano - gitster - в коммите b72e907, 25 апреля 2019 г.)

difftool: разрешить запуск вне рабочих дерев Git с параметром --no --no-index

Насколько этот разработчик может сказать, преобразование скрипта Perl во встроенный вызвало регресс в difftool, что он больше не работает вне рабочего дерева Git (с --no-index, конечно).

Немного неловко, что после выхода на пенсию версии Perl потребовалось более двух лет, чтобы обнаружить эту регрессию, но, по крайней мере, теперь мы знаем и можем что-то с этим сделать.

Это исправляет проблему git-for-windows/git 2123.