українська мова ▾
Localized versions of git-interpret-trailers manual
  1. English
  2. Français
  3. Português (Brasil)
  4. українська мова
  5. 简体中文
Topics ▾ Latest version ▾ git-interpret-trailers last updated in 2.51.1
Changes in the git-interpret-trailers manual
  1. 2.51.2 → 2.52.0 no changes
  2. 2.51.1 2025年10月15日
  3. 2.49.1 → 2.51.0 no changes
  4. 2.49.0 2025年03月14日
  5. 2.45.1 → 2.48.2 no changes
  6. 2.45.0 2024年04月29日
  7. 2.43.1 → 2.44.4 no changes
  8. 2.43.0 2023年11月20日
  9. 2.42.1 → 2.42.4 no changes
  10. 2.42.0 2023年08月21日
  11. 2.41.1 → 2.41.3 no changes
  12. 2.41.0 2023年06月01日
  13. 2.39.1 → 2.40.4 no changes
  14. 2.39.0 2022年12月12日
  15. 2.38.1 → 2.38.5 no changes
  16. 2.38.0 2022年10月02日
  17. 2.32.1 → 2.37.7 no changes
  18. 2.32.0 2021年06月06日
  19. 2.22.1 → 2.31.8 no changes
  20. 2.22.0 2019年06月07日
  21. 2.19.3 → 2.21.4 no changes
  22. 2.19.2 2018年11月21日
  23. 2.19.1 no changes
  24. 2.19.0 2018年09月10日
  25. 2.18.1 → 2.18.5 no changes
  26. 2.18.0 2018年06月21日
  27. 2.17.0 → 2.17.6 no changes
  28. 2.16.6 2019年12月06日
  29. 2.15.4 2019年12月06日
  30. 2.14.6 no changes
  31. 2.13.7 2018年05月22日
  32. 2.12.5 no changes
  33. 2.11.4 2017年09月22日
  34. 2.10.5 no changes
  35. 2.9.5 2017年07月30日
  36. 2.8.6 2017年07月30日
  37. 2.7.6 no changes
  38. 2.6.7 2017年05月05日
  39. 2.3.10 → 2.5.6 no changes
  40. 2.2.3 2015年09月04日

Check your version of git by running

git --version

НАЗВА

git-interpret-trailers - Додавання або аналіз структурованої інформації в повідомленнях комітів

СИНОПСИС

git interpret-trailers [--in-place] [--trim-empty]
			[(--trailer (<key>|<key-alias>)[(=|:)<value>])…​]
			[--parse] [<file>…​]

ОПИС

Додайте або проаналізуйте рядки-«трейлери», схожі на заголовки електронних листів RFC 822, в кінці довільної частини повідомлення коміту. Наприклад, у наступному повідомленні коміту

суб'єкт
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Signed-off-by: Alice <alice@example.com>
Signed-off-by: Bob <bob@example.com>

останні два рядки, що починаються з «Signed-off-by», є трейлерами.

Ця команда зчитує повідомлення комітів або з аргументів <file>, або зі стандартного вводу, якщо <file> не вказано. Якщо вказано --parse, вивід складається з проаналізованих трейлерів, що надходять з вводу, без впливу на них будь-якими параметрами командного рядка чи змінними конфігурації.

В іншому випадку ця команда застосовує змінні конфігурації trailer.* (які потенційно можуть додавати нові трейлери, а також змінювати їх положення), а також будь-які аргументи командного рядка, які можуть перевизначати змінні конфігурації (такі як --trailer=..., які також можуть додавати нові трейлери), до кожного вхідного файлу. Результат виводиться на стандартний вивід.

Ця команда також може працювати з виводом git-format-patch[1], який є складнішим, ніж звичайне повідомлення коміту. А саме, такий вивід включає повідомлення коміту (як вище), роздільник "---" та частину патча. Для цих вхідних даних частини роздільника та патча не змінюються цією командою та виводяться на вивід як є, якщо не вказано --no-divider.

Деякі змінні конфігурації контролюють спосіб застосування аргументів --trailer до кожного вхідного значення та спосіб зміни будь-якого існуючого трейлера у вхідному значенні. Вони також дозволяють автоматично додавати деякі трейлери.

За замовчуванням аргумент <ключ>=<значення> або <ключ>:<значення>, заданий за допомогою --trailer, буде додано після існуючих трейлерів, лише якщо останній трейлер має іншу пару (<ключ>, <значення>) (або якщо трейлер відсутній). Частини <ключ> та <значення> будуть обрізані, щоб видалити початкові та кінцеві пробіли, а отримані обрізані <ключ> та <значення> відображатимуться у виводі ось так:

key: value

Це означає, що обрізані <ключ> та <значення> будуть розділені знаком `: ' (одна двокрапка, за якою йде один пробіл).

Для зручності можна налаштувати <key-alias>, щоб скоротити використання --trailer для введення в командному рядку. Це можна налаштувати за допомогою змінної конфігурації trailer.<key-alias>.key. <keyAlias> має бути префіксом повного рядка <key>, хоча чутливість до регістру не має значення. Наприклад, якщо у вас є

trailer.sign.key "Підписано: "

у вашій конфігурації вам потрібно лише вказати --trailer="sign: foo" у командному рядку замість --trailer="Signed-off-by: foo".

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

Існуючі трейлери витягуються з вхідних даних шляхом пошуку групи з одного або кількох рядків, які (i) є повністю трейлерами, або (ii) містять принаймні один трейлер, згенерований Git або налаштований користувачем, і складаються щонайменше з 25% трейлерів. Групі має передувати один або кілька порожніх (або лише пробілних) рядків. Група має бути або в кінці вхідних даних, або бути останнім рядком без пробілів перед рядком, який починається з --- (за яким йде пробіл або кінець рядка).

Під час читання трейлерів не може бути пробілів перед або всередині <key>, але між <key> та роздільником дозволена будь-яка кількість звичайних пробілів та символів табуляції. Пробіли можуть бути перед, всередині або після <value>. <value> може бути розділений на кілька рядків, причому кожен наступний рядок починається принаймні з одного пробілу, як у випадку з "folding" у RFC 822. Приклад:

ключ: Це дуже довге значення з пробілами та
символами нового рядка.

Зверніть увагу, що трейлери не дотримуються (і не призначені для дотримання) багатьох правил для заголовків RFC 822. Наприклад, вони не дотримуються правила кодування.

ОПЦІЇ

--in-place

Відредагуйте файли на місці.

--trim-empty

Якщо частина <value> будь-якого трейлера містить лише пробіли, весь трейлер буде видалено з виводу. Це стосується як існуючих, так і нових трейлерів.

--trailer <key>[(=|:)<value>]

Вкажіть пару (<ключ>, <значення>), яку слід застосувати як трейлер до вхідних даних. Див. опис цієї команди.

--where <placement>
--no-where

Вкажіть, куди будуть додаватися всі нові трейлери. Налаштування з параметром --where замінює trailer.where та будь-які відповідні змінні конфігурації trailer.<keyAlias>.where і застосовується до всіх параметрів --trailer до наступного виникнення --where або --no-where. У разі виникнення --no-where очистіть дію будь-якого попереднього використання --where, щоб відповідні змінні конфігурації більше не перезаписувалися. Можливі розташування: after, before, end або start.

--if-exists <action>
--no-if-exists

Вкажіть, яка дія буде виконана, якщо у вхідних даних вже є хоча б один трейлер з тим самим <key>. Налаштування, задане за допомогою --if-exists, замінює trailer.ifExists та будь-які відповідні змінні конфігурації trailer.<keyAlias>.ifExists і застосовується до всіх параметрів --trailer до наступного виникнення --if-exists або --no-if-exists. У разі виникнення --no-if-exists, очистіть ефект будь-якого попереднього використання --if-exists, щоб відповідні змінні конфігурації більше не перезаписувалися. Можливі дії: addIfDifferent, addIfDifferentNeighbor, add, replace та doNothing.

--if-missing <action>
--no-if-missing

Вкажіть, яка дія буде виконана, якщо у вхідних даних немає іншого трейлера з тим самим <key>. Налаштування, задане за допомогою --if-missing, замінює trailer.ifMissing та будь-які відповідні змінні конфігурації trailer.<keyAlias>.ifMissing і застосовується до всіх параметрів --trailer до наступного виникнення --if-missing або --no-if-missing. У разі виникнення --no-if-missing, очистіть ефект будь-якого попереднього використання --if-missing, щоб відповідні змінні конфігурації більше не перезаписувалися. Можливі дії: doNothing або add.

--only-trailers

Виведіть лише трейлери, а не будь-які інші частини вхідних даних.

--only-input

Виводити лише трейлери, що існують у вхідних даних; не додавати жодних з командного рядка або шляхом застосування змінних конфігурації trailer.*.

--unfold

Якщо значення трейлера займає кілька рядків (тобто "згорнуте"), переформатуйте значення в один рядок.

--parse

Зручний псевдонім для --only-trailers --only-input --unfold. Це спрощує перегляд лише трейлерів, що надходять з вхідних даних, без впливу на них за допомогою будь-яких параметрів командного рядка чи змінних конфігурації, а також робить вивід зручним для роботи з машиною за допомогою --unfold.

--no-divider

Не трактуйте --- як кінець повідомлення коміту. Використовуйте це, коли знаєте, що ваші вхідні дані містять лише саме повідомлення коміту (а не електронну пошту чи вивід git format-patch).

ЗМІННІ КОНФІГУРАЦІЇ

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

Warning

Missing uk/config/trailer.adoc

See original version for this content.

ПРИКЛАДИ

  • Налаштуйте трейлер «підпис» з ключем «Підписано», а потім додайте два таких трейлери до файлу повідомлення коміту:

    $ git config trailer.sign.key "Signed-off-by"
    $ cat msg.txt
    subject
    body text
    $ git interpret-trailers --trailer 'sign: Alice <alice@example.com>' --trailer 'sign: Bob <bob@example.com>' <msg.txt
    subject
    основний текст
    Signed-off-by: Alice <alice@example.com>
    Signed-off-by: Bob <bob@example.com>
  • Використайте опцію --in-place для редагування файлу повідомлення коміту на місці:

    $ cat msg.txt
    subject
    основний текст
    Підписав: Боб <bob@example.com>
    $ git interpret-trailers --trailer 'Acked-by: Alice <alice@example.com>' --in-place msg.txt
    $ cat msg.txt
    subject
    основний текст
    Signed-off-by: Bob <bob@example.com>
    Acked-by: Alice <alice@example.com>
  • Витягніть останній коміт як патч і додайте до нього трейлер «Копія» та «Перевірено»:

    $ git format-patch -1
    0001-foo.patch
    $ git interpret-trailers --trailer 'Cc: Alice <alice@example.com>' --trailer 'Reviewed-by: Bob <bob@example.com>' 0001-foo.patch >0001-bar.patch
  • Налаштуйте трейлер «підпису» з командою автоматичного додавання «Підписано:» з інформацією про автора, лише якщо «Підписано:» ще немає, та покажіть, як це працює:

    $ cat msg1.txt
    subject
    body text
    $ git config trailer.sign.key "Signed-off-by: "
    $ git config trailer.sign.ifmissing add
    $ git config trailer.sign.ifexists doNothing
    $ git config trailer.sign.cmd 'echo "$(git config user.name) <$(git config user.email)>"'
    $ git interpret-trailers --trailer sign <msg1.txt
    subject
    основний текст
    Signed-off-by: Bob <bob@example.com>
    $ cat msg2.txt
    subject
    основний текст
    Signed-off-by: Alice <alice@example.com>
    $ git interpret-trailers --trailer sign <msg2.txt
    subject
    основний текст
    Signed-off-by: Alice <alice@example.com>
  • Налаштуйте трейлер «виправлення» з ключем, що містить символ «#» і не містить пробілу після нього, і покажіть, як це працює:

    $ git config trailer.separators ":#"
    $ git config trailer.fix.key "Fix #"
    $ echo "subject" | git interpret-trailers --trailer fix=42
    subject
    Виправлення #42
  • Налаштуйте трейлер «довідки» за допомогою командної команди, використовуючи скрипт glog-find-author, який шукає вказану особу автора з журналу git у репозиторії git та показує, як це працює:

    $ cat ~/bin/glog-find-author
    #!/bin/sh
    test -n "1ドル" && git log --author="1ドル" --pretty="%an <%ae>" -1 || true
    $ cat msg.txt
    subject
    body text
    $ git config trailer.help.key "Helped-by: "
    $ git config trailer.help.ifExists "addIfDifferentNeighbor"
    $ git config trailer.help.cmd "~/bin/glog-find-author"
    $ git interpret-trailers --trailer="help:Junio" --trailer="help:Couder" <msg.txt
    subject
    основний текст
    Helped-by: Junio C Hamano <gitster@pobox.com>
    Helped-by: Christian Couder <christian.couder@gmail.com>
  • Налаштуйте трейлер ref за допомогою командної команди, використовуючи скрипт glog-grep для отримання останнього відповідного коміту з журналу git у репозиторії git командою grep та покажіть, як це працює:

    $ cat ~/bin/glog-grep
    #!/bin/sh
    test -n "1ドル" && git log --grep "1ドル" --pretty=reference -1 || true
    $ cat msg.txt
    subject
    body text
    $ git config trailer.ref.key "Reference-to: "
    $ git config trailer.ref.ifExists "replace"
    $ git config trailer.ref.cmd "~/bin/glog-grep"
    $ git interpret-trailers --trailer="ref:Add copyright notices." <msg.txt
    subject
    основний текст
    Reference-to: 8bc9a0c769 (Add copyright notices., 2005年04月07日)
  • Налаштуйте трейлер «see» за допомогою команди, яка покаже тему пов’язаного коміту та покаже, як це працює:

    $ cat msg.txt
    subject
    основний текст
    see: HEAD~2
    $ cat ~/bin/glog-ref
    #!/bin/sh
    git log -1 --oneline --format="%h (%s)" --abbrev-commit --abbrev=14
    $ git config trailer.see.key "See-also: "
    $ git config trailer.see.ifExists "replace"
    $ git config trailer.see.ifMissing "doNothing"
    $ git config trailer.see.cmd "glog-ref"
    $ git interpret-trailers --trailer=see <msg.txt
    subject
    основний текст
    See-also: fe3187489d69c4 (subject of related commit)
  • Налаштуйте шаблон коміту з деякими трейлерами з порожніми значеннями (використовуючи sed для відображення та збереження пробілів у кінці трейлерів), потім налаштуйте гачок commit-msg, який використовує git interpret-trailers для видалення трейлерів з порожніми значеннями та додавання трейлера git-version:

    $ cat temp.txt
    ***subject***
    ***повідомлення***
    Fixes: Z
    Cc: Z
    Reviewed-by: Z
    Signed-off-by: Z
    $ sed -e 's/ Z$/ /' temp.txt > commit_template.txt
    $ git config commit.template commit_template.txt
    $ cat .git/hooks/commit-msg
    #!/bin/sh
    git interpret-trailers --trim-empty --trailer "git-version: \$(git describe)" "\1ドル" > "\1ドル.new"
    mv "\1ドル.new" "\1ドル"
    $ chmod +x .git/hooks/commit-msg

GIT

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

AltStyle によって変換されたページ (->オリジナル) /