Сравнение двух текстов
Разница двух текстов или конфигов построчно и пословно, патч в формате diff -u.
Разница
Тексты совпадают.
Считается в браузере, на сервер ничего не уходит
Практика на машине
Лаба «Смени адрес во всех конфигах»
В терминале Linux
cp nginx.conf nginx.conf.bak
# копия перед правкой
diff -u nginx.conf.bak nginx.conf
# разница в формате патча
diff -w a.conf b.conf
# без учёта пробелов
diff -rq /etc/nginx /backup/nginx
# какие файлы в каталогах различаются
git diff --no-index --word-diff a.txt b.txt
# пословно, даже вне репозитория
УчтиПробелы в конце строк и переводы строк Windows (CRLF) тоже дают отличия, хотя строки выглядят одинаково.
Как читать diff -u
---и+++— старый и новый файл.@@ -1,4 +1,5 @@— кусок: в старом файле 4 строки с первой, в новом — 5.-— строка удалена,+— добавлена, пробел — не менялась.
Частые вопросы
Почему одинаковые строки отмечены как изменённые?
Они отличаются невидимым: пробелом в конце, табом, концом строки \r\n. Если с «Без учёта
пробелов» отметка пропала — дело в пробелах.
Как сравнить два файла?
Вставь их содержимое в «Было» и «Стало». На сервере — diff -u file1 file2.
Как применить патч?
Сохрани его в файл, поправь имена в строках --- и +++ и примени patch -p0 < file.patch.
Сначала проверь с --dry-run.