Можно ли найти разницу между двумя произвольными текстовыми файлами с помощью 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 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 " теперь может работать вне хранилища.
difftool: разрешить запуск вне рабочих дерев Git с параметром --no --no-index
Насколько этот разработчик может сказать, преобразование скрипта Perl во встроенный вызвало регресс в difftool, что он больше не работает вне рабочего дерева Git (с --no-index, конечно).
Немного неловко, что после выхода на пенсию версии Perl потребовалось более двух лет, чтобы обнаружить эту регрессию, но, по крайней мере, теперь мы знаем и можем что-то с этим сделать.