українська мова ▾ Topics ▾ Latest version ▾ git-apply last updated in 2.51.0

НАЗВА

git-apply — Застосування латок до файлів та/або до індексу

СИНОПСИС

git apply [--stat] [--numstat] [--summary] [--check]
	  [--index | --intent-to-add] [--3way] [--ours | --theirs | --union]
	  [--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse]
	  [--allow-binary-replacement | --binary] [--reject] [-z]
	  [-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached]
	  [--ignore-space-change | --ignore-whitespace]
	  [--whitespace=(nowarn|warn|fix|error|error-all)]
	  [--exclude=<path>] [--include=<path>] [--directory=<root>]
	  [--verbose | --quiet] [--unsafe-paths] [--allow-empty] [<patch>…​]

ОПИС

Зчитує наданий вивід diff (тобто "латку") та застосовує його до файлів. Під час запуску з субтеки в репозиторії, виправлені шляхи поза текою ігноруються. З опцією --index латка також застосовується до індексу, а з опцією --cached латка застосовується лише до індексу. Без цих опцій команда застосовує латку лише до файлів і не вимагає їхньої присутності в репозиторії Git.

Ця команда застосовує латку, але не створює коміт. Використовуйте git-am[1] для створення комітів з латок, згенерованих git-format-patch[1] та/або отриманих електронною поштою.

ОПЦІЇ

<patch>…​

Файли, з яких потрібно зчитувати латку. - можна використовувати для зчитування зі стандартного вводу.

--stat

Замість застосування латки, вивести diffstat для вхідних даних. Вимикає функцію "apply".

--numstat

Подібно до --stat, але показує кількість доданих та видалених рядків у десятковому форматі та шлях без скорочень, щоб зробити його зручнішим для машинного обчислення. Для бінарних файлів виводить два - замість 0 0. Вимикає "apply".

--summary

Замість застосування латки, виводить скорочений підсумок інформації, отриманої з розширених заголовків git diff, такої як створення, перейменування та зміни режиму. Вимикає "apply".

--check

Замість того, щоб застосовувати латку, перевірте, чи підходить він до поточного робочого дерева та/або індексного файлу, і чи виявляє він помилки. Вимикає функцію «apply».

--index

Застосовує латку як до індексу, так і до робочого дерева (або просто перевіряє, чи вона застосовуватиметься чисто до обох, якщо активовано --check). Зверніть увагу, що --index очікує, що записи індексу та копії робочого дерева для відповідних шляхів будуть ідентичними (їхній вміст та метадані, такі як режим файлу, повинні збігатися), і викличе помилку, якщо вони не збігаються, навіть якщо латка застосовуватиметься чисто як до індексу, так і до робочого дерева окремо.

--cached

Застосовує латку лише до індексу, не торкаючись робочого дерева. Якщо активовано параметр --check, просто перевірте, чи вона буде коректно застосовуватися до запису індексу.

-N
--intent-to-add

Якщо ви застосовуєте латку лише до робочого дерева, позначте нові файли для додавання до індексу пізніше (див. опцію --intent-to-add у git-add[1]). Ця опція ігнорується, якщо використовуються --index або --cached, і не має жодного ефекту поза репозиторієм Git. Зверніть увагу, що --index може матися на увазі іншими опціями, такими як --3way.

-3
--3way

Спробувати тристороннє злиття, якщо латка містить ідентифікатори блоків, до яких вона повинна бути застосована, і ці блоки доступні локально, при цьому, можливо, залишивши маркери конфліктів у файлах робочого дерева для розвʼязання користувачем. Ця опція передбачає використання опції --index, якщо не вказано опцію --cached, і несумісна з опцією --reject. При використанні з опцією --cached будь-які конфлікти залишаються на вищих етапах у кеші.

--ours
--theirs
--union

Замість того, щоб залишати конфлікти у файлі, розвʼязувати їх на користь нашої (або їхньої, або обох) сторони. Потрібно --3way.

--build-fake-ancestor=<file>

У новій версії виводу команди «git diff» для кожного блобу вбудовано «інформацію про індекс», що допомагає визначити вихідну версію, до якої застосовується латка. Якщо вказано цей прапорець і вихідні версії блобів доступні локально, створюється тимчасовий індекс, що містить ці блоби.

Коли відбувається чиста зміна режиму (яка не має інформації про індекс), інформація зчитується з поточного індексу.

-R
--reverse

Накладання латок в зворотному порядку.

--reject

З метою забезпечення атомарності команда git apply стандартно відхиляє всю латку і не вносить змін у робоче дерево, якщо деякі фрагменти не можуть бути застосовані. Ця опція дозволяє застосувати ті частини латки, які можна застосувати, а відхилені фрагменти зберегти у відповідних файлах *.rej.

-z

Якщо задано параметр --numstat, не змінювати шляхи, а використовуйте машинно-читаний формат із NUL-закінченням.

Без цієї опції шляхи з «незвичайними» символами беруться в лапки, як це пояснено для змінної конфігурації core.quotePath (див. git-config[1]).

-p<n>

Видаляти <n> початкових компонентів шляху (розділених скісними рисками) з традиційних шляхів diff. Наприклад, з параметром -p2, латка для a/dir/file буде застосована безпосередньо до file. Стандартне значення — 1.

-C<n>

Переконатись, що принаймні <n> рядків навколишнього контексту збігаються до та після кожної зміни. Якщо рядків навколишнього контексту менше, всі вони повинні збігатися. Зазвичай жоден контекст ніколи не ігнорується.

--unidiff-zero

Зазвичай команда git apply» передбачає, що латка, яку потрібно застосувати, є уніфікованим diff з принаймні одним рядком контексту. Це забезпечує високий рівень безпеки, але не працює під час застосування diff, згенерованого з параметром --unified=0. Щоб обійти ці перевірки, використовуйте параметр --unidiff-zero.

Зверніть увагу, що з причин, зазначених вище, використання контекстно-вільних латок не рекомендується.

--apply

Якщо ви використовуєте будь-який із параметрів, позначених вище як «Вимикає apply», git apply зчитує та виводить запитувану інформацію без фактичного застосування латки. Встановіть цей прапорець після цих прапорців, щоб також застосувати латку.

--no-add

Під час застосування латки ігнорувати додані нею зміни. Цю опцію можна використовувати для вилучення спільної частини між двома файлами: спочатку запустіть для них команду diff, а потім застосуйте отриманий результат із цією опцією, що дозволить застосувати видалені частини, але не додані.

--allow-binary-replacement
--binary

Історично ми не дозволяли застосування бінарних латок без явного дозволу користувача, і цей прапорець був способом це зробити. Наразі ми завжди дозволяємо застосування бінарних латок, тому ця опція не має жодного впливу.

--exclude=<path-pattern>

Не застосовувати зміни до файлів, що відповідають заданому шаблону шляху. Це може бути корисним під час імпорту наборів латок, де потрібно виключити певні файли або теки.

--include=<path-pattern>

Застосовувати зміни до файлів, що відповідають заданому шаблону шляху. Це може бути корисним під час імпорту наборів латок, куди потрібно включити певні файли або теки.

Коли використовуються шаблони --exclude та --include, вони перевіряються в порядку їх появи в командному рядку, і перший збіг визначає, чи використовується латка для кожного шляху. Латка для шляху, який не відповідає жодному шаблону включення/виключення, стандартно використовується, якщо в командному рядку немає шаблону включення, та ігнорується, якщо є будь-який шаблон включення.

--ignore-space-change
--ignore-whitespace

Під час застосування латки, за потреби, ігноруйте зміни пробілів у рядках контексту. Рядки контексту збережуть свої пробіли та не будуть виправлені незалежно від значення опції --whitespace. Однак нові рядки все одно будуть виправлені.

--whitespace=<action>

Під час застосування латки виявляти новий або змінений рядок, який містить помилки пробілів. Те, що вважається помилками пробілів, контролюється конфігурацією core.whitespace. Зазвичай, кінцеві пробіли (включно з рядками, що складаються виключно з пробілів) та символ пробілу, одразу за яким йде символ табуляції всередині початкового відступу рядка, вважаються помилками пробілів.

Стандартно, команда виводить попередження, але застосовує латку. Коли git-apply використовується для статистики, а латка не застосовується, стандартно використовується nowarn.

Ви можете використовувати різні значення <action> для керування цією поведінкою:

  • nowarn вимикає попередження про пробіли в кінці.

  • warn виводить попередження для кількох таких помилок, але застосовує латку як є (стандартно).

  • fix виводить попередження для кількох таких помилок та застосовує латку після їх виправлення (strip є синонімом — інструмент, який використовується для розгляду лише пробілів у кінці як помилок, а виправлення включало їх «видалення», але сучасні Gits роблять більше).

  • error виводить попередження для кількох таких помилок та відмовляється застосовувати виправлення.

  • error-all схоже на error, але показує всі помилки.

--inaccurate-eof

За певних обставин деякі версії diff неправильно виявляють відсутній символ нового рядка в кінці файлу. Як наслідок, латки, створені такими програмами diff, неправильно записують неповні рядки. Ця опція додає підтримку для застосування таких латок, обходячи цю помилку.

-v
--verbose

Повідомляти про прогрес в stderr. Зазвичай буде виведено лише повідомлення про поточну застосовану латку. Ця опція призведе до повідомлення додаткової інформації.

-q
--quiet

Придушити вивід stderr. Повідомлення про стан та прогрес виправлення не будуть виведені.

--recount

Не довіряти кількості рядків у заголовках фрагмента, а зробить висновки про неї, перевіривши латку (наприклад, після редагування латки без належного налаштування заголовків фрагментів).

--directory=<root>

Додати <root> до всіх імен файлів. Якщо також було передано аргумент "-p", він застосовується перед додаванням нового кореневого тегу на початку.

Наприклад, латка, яка описує оновлення a/git-gui.sh до b/git-gui.sh, може бути застосована до файлу в робочому дереві modules/git-gui/git-gui.sh, шляхом виконання команди git apply --directory=modules/git-gui.

--unsafe-paths

Зазвичай, латка, що має вплив поза робочою областю (або робоче дерево, кероване Git, або поточна робоча тека, коли "git apply" використовується як заміна GNU patch), відхиляється як помилка (або шахрайство).

Коли git apply використовується як "краща латка GNU", користувач може передати опцію --unsafe-paths, щоб перевизначити цю перевірку безпеки. Ця опція не має ефекту, коли використовується --index або --cached..

--allow-empty

Не повертати помилку для латок, що не містять різниці. Це включає порожні латки та латки, що містять лише текст коміту.

КОНФІГУРАЦІЯ

Все, що знаходиться нижче цього рядка в цьому розділі, вибірково включено з документації git-config[1]. Вміст такий самий, як і там:

Warning

Missing uk/config/apply.adoc

See original version for this content.

СУБМОДУЛІ

Якщо латка містить будь-які зміни до субмодулів, то git apply обробляє ці зміни наступним чином.

Якщо вказано параметр --index (явно чи неявно), то для застосування латки коміти субмодулів повинні точно відповідати індексу. Якщо будь-які субмодулі завантажено, то ці завантаження повністю ігноруються, тобто вони не повинні бути актуальними чи чистими, і їх не оновлюють.

Якщо --index не вказано, то коміти субмодулів у латці ігноруються, і перевіряється та (якщо можливо) оновлюється лише відсутність або наявність відповідної субтеки.

ДИВ. ТАКОЖ

GIT

Частина набору git[1]