Генератор патчей unified diff для Git
Сравните два блока текста и создайте unified diff (.patch) в стиле Git с корректными заголовками hunk @@, используя алгоритм диффа Миерса. Настройте количество строк контекста и пути файлов a/b.
Ввод
Неизменённые строки, показываемые вокруг каждого изменения (стандартное значение diff -u — 3).
Вывод
Введите оба текста, чтобы увидеть различия.
Другие способы использовать этот инструмент
REST API
curl -X POST https://api.iotools.cloud/v1/tool/git-unified-diff-patch-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"originalText": "line one\nline two\nline three",
"modifiedText": "line one\nline 2\nline three",
"fromFile": "a.txt",
"toFile": "b.txt",
"contextLines": "3"
}'Подставьте свой собственный ключ из аккаунта. Поля инструмента — это тело запроса, без обёртки.
Спросите у ИИ-агента
Use the IOTools `git-unified-diff-patch-generator` tool (Git Unified Diff Patch Generator) on this input:
YOUR_INPUT_HEREВставьте это любому агенту, подключённому к MCP-серверу IOTools, и добавьте свой ввод.
Виджет для встраивания
<iframe
src="https://iotools.cloud/embed/git-unified-diff-patch-generator/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Генератор патчей unified diff для Git — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>Вставьте это на свою страницу — бесплатно, без ключа, нужна лишь обратная ссылка.
| Стоимость вызова API/MCP | От 5 кредитов |
|---|---|
| Нужно больше кредитов? | Посмотреть тарифы |
Также доступно через
Руководства
Вставьте две версии файла и получите готовый к применению unified diff patch — точно в формате --- a, +++ b, @@ -l,s +l,s @@, который создают git diff и diff -u. Всё выполняется в вашем браузере, поэтому вставленный текст никогда не покидает ваш компьютер.
Что такое unified diff?
Unified diff — это стандартный текстовый формат для описания изменений между двумя файлами. Каждый патч начинается с двух строк заголовка, в которых указаны исходный (---) и изменённый (+++) файлы, за которыми следует один или несколько hunk'ов. Hunk начинается с заголовка вида @@ -12,7 +12,8 @@, где записаны начальная строка и количество строк с каждой стороны, затем идут строки контекста (с пробелом в начале), удалённые строки (-) и добавленные строки (+). Этот формат Git хранит в коммитах, его отображают инструменты код-ревью, и его обрабатывают patch и git apply.
Как пользоваться
- Вставьте исходный текст в поле Исходный, а изменённый текст — в поле Изменённый.
- При необходимости задайте Путь к исходному файлу и Путь к изменённому файлу — они станут строками заголовков
--- a.txt/+++ b.txt. Если вы планируете применить результат черезgit apply, используйте реальные пути в репозитории (например,a/src/index.js). - При необходимости измените Строки контекста — количество неизменённых строк вокруг каждого изменения. Значение по умолчанию 3 соответствует
diff -u; установите 0, чтобы получить максимально компактный патч. - Скопируйте созданный патч или скачайте его как файл
.patch.
Как вычисляется дифф
Инструмент использует алгоритм O(ND) Миерса — тот же подход с кратчайшим скриптом редактирования, на котором построен Git. Алгоритм Миерса находит минимальный набор вставок и удалений, превращающих исходный текст в изменённый, а затем объединяет эти правки в hunk'и с выбранным количеством контекста. Соседние изменения, находящиеся в пределах двойного окна контекста, объединяются в один hunk — точно так же, как это делает diff -u, поэтому результат полностью совместим побайтово со стандартными инструментами.
Применение патча
Сохраните результат в файл changes.patch, затем примените его командой git apply changes.patch или patch -p0 < changes.patch. Если вы использовали префиксы пути a/… и b/…, git apply -p1 сопоставит их с вашим рабочим деревом.
Точен ли он для кода?
Да. Построчный дифф детерминирован и совпадает с diff -u из GNU на тех же входных данных, включая заголовки hunk'ов и количество строк. Сравниваются целые строки, поэтому изменение одного символа отображается как одна удалённая и одна добавленная строка — это обычное поведение для патчей, основанных на строках.
Конфиденциальность
Вся обработка выполняется на стороне клиента, в вашем браузере. Ваш текст никогда не загружается, не записывается в журнал и не отправляется на сервер, поэтому инструмент безопасен для проприетарного исходного кода и других конфиденциальных файлов.
Часто задаваемые вопросы
Какое количество строк контекста использовать? Три — универсальное значение по умолчанию, которого ожидают рецензенты. Увеличьте его, если патчу нужно больше окружающего кода для читаемости; уменьшите до 0 для самого компактного диффа.
Можно ли создать патч для нового или удалённого файла? Да — оставьте одну сторону пустой. Пустой Исходный текст даёт патч только с добавлениями; пустой Изменённый текст даёт патч только с удалениями.