Может ли кто-нибудь объяснить мне разницу между файлом .diff и .patch.
Разница между патчами и файлами diff
Ответ 1
Важно то, что содержимое файла, а не расширение. Оба эти расширения подразумевают, что какая-то утилита diff (diff
, git diff
, git format-patch
, svn diff
) выдала результат.
Многие утилиты diff производят вывод, который может быть применен командой patch
. Вам часто нужно использовать параметры -d
и -p
для patch
, чтобы получить правильные пути (префикс полосы, целевой каталог имен). Если вы видите одно из этих расширений в распространенном в Интернете файле, это почти наверняка указывает на совместимость с patch
.
Git выход diff совместим с патчем, но я считаю, что svn не является. Конечно, простые патчи, созданные git diff
, вероятно, лучше всего применяются git apply
, а патчи, созданные git format-patch
, предназначены для использования с git-am
.
Ответ 2
Нет никаких различий. Утилита diff
создает файл исправления, который применяется с помощью patch
.
Ответ 3
patch - это унифицированный diff (-u), если вы выполните:
diff -u oldfile newfile
с командной строкой patch, вы можете применить различия к oldfile, чтобы стать новым файлом где-то еще.