Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
-
2.54.0
2026-04-20
-
2.53.0
2026-02-02
-
2.52.0
2025-11-17
- 2.51.2 no changes
-
2.51.1
2025-10-15
-
2.51.0
2025-08-18
- 2.50.1 no changes
-
2.50.0
2025-06-16
- 2.47.1 → 2.49.1 no changes
-
2.47.0
2024-10-06
- 2.45.1 → 2.46.4 no changes
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.4 no changes
-
2.44.0
2024-02-23
- 2.43.2 → 2.43.7 no changes
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
- 2.41.1 → 2.42.4 no changes
-
2.41.0
2023-06-01
- 2.39.1 → 2.40.4 no changes
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 no changes
-
2.38.0
2022-10-02
- 2.35.1 → 2.37.7 no changes
-
2.35.0
2022-01-24
- 2.33.1 → 2.34.8 no changes
-
2.33.0
2021-08-16
- 2.30.2 → 2.32.7 no changes
-
2.30.1
2021-02-08
-
2.30.0
2020-12-27
- 2.24.1 → 2.29.3 no changes
-
2.24.0
2019-11-04
- 2.23.1 → 2.23.4 no changes
-
2.23.0
2019-08-16
- 2.22.2 → 2.22.5 no changes
-
2.22.1
2019-08-11
- 2.21.1 → 2.22.0 no changes
-
2.21.0
2019-02-24
- 2.20.1 → 2.20.5 no changes
-
2.20.0
2018-12-09
- 2.19.1 → 2.19.6 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.1 → 2.17.6 no changes
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
- 2.15.4 no changes
-
2.14.6
2019-12-06
- 2.13.7 no changes
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 no changes
-
2.9.5
2017-07-30
- 2.8.6 no changes
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
-
2.3.10
2015-09-28
- 2.2.3 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
СИНОПСИС
git send-email [<options>] (<file>|<directory>)… git send-email [<options>] <format-patch-options> git send-email --dump-aliases git send-email --translate-aliases
ОПИС
Приймає латки, вказані в командному рядку, та надсилає їх електронною поштою. Латки можна вказати у вигляді файлів, тек (у цьому випадку будуть надіслані всі файли з теки) або безпосередньо у вигляді списку змін. В останньому випадку до команди git send-email можна передавати будь-який формат, що підтримується git-format-patch[1], а також параметри, які розуміє git-format-patch[1].
Заголовки листів можна налаштувати за допомогою параметрів командного рядка. Якщо параметри не вказано в командному рядку, користувачеві буде запропоновано ввести необхідну інформацію через інтерфейс із підтримкою ReadLine.
Для файлів латок приймаються два формати:
-
файли формату mbox
Те що генерує git-format-patch[1]. Більшість заголовків та MIME-форматування ігноруються.
-
Оригінальний формат, який використовувався скриптом
send_lots_of_email.plГрега Кроа-ХартманаУ цьому форматі перший рядок файлу має містити значення
Cc:, а другий рядок —Subject:повідомлення.
ОПЦІЇ
Складання
- --annotate
-
Переглянути та відредагувати кожну латку, яку ви збираєтеся надіслати. Стандартним значенням є значення параметра
sendemail.annotate. Інформацію про параметрsendemail.multiEditдив. у розділі КОНФІГУРАЦІЯ. - --bcc=<address>,…
-
Вкажіть значення Прихована копія: для кожного електронного листа. Стандартно використовується значення
sendemail.bcc.Цей параметр можна вказати кілька разів.
- --cc=<address>,…
-
Вкажіть початкове значення поля
Cc:для кожного електронного листа. Стандартно використовується значенняsendemail.cc.Цей параметр можна вказати кілька разів.
- --compose
-
Запустити текстовий редактор (див. GIT_EDITOR у git-var[1]), щоб відредагувати вступне повідомлення для серії латок.
При використанні опції
--composeкомандаgitsend-emailвикористовуватиме заголовкиFrom,To,Cc,Bcc,Subject,Reply-ToтаIn-Reply-To, вказані у повідомленні. Якщо тіло повідомлення (те, що ви вводите після заголовків і порожнього рядка) містить лише порожні рядки (або рядки з префіксомGit:), підсумок не буде надіслано, але згадані вище заголовки будуть використані, якщо їх не видалити.Буде запропоновано ввести відсутні заголовки
FromабоIn-Reply-To.Дивіться розділ КОНФІГУРАЦІЯ для
sendemail.multiEdit. - --from=<address>
-
Вкажіть відправника електронних листів. Якщо не вказано в командному рядку, використовується значення параметра конфігурації
sendemail.from. Якщо а ні параметр командного рядка, а ніsendemail.fromне встановлено, користувачеві буде запропоновано ввести значення. Стандартним значенням для запиту будеGIT_AUTHOR_IDENTабоGIT_COMMITTER_IDENT, якщо воно не встановлено, як повертаєтьсяgitvar-l. - --reply-to=<address>
-
Вкажіть адресу, на яку мають надходити відповіді від одержувачів. Використовуйте це, якщо відповіді на повідомлення мають надходити на адресу, відмінну від тієї, що вказана параметром
--from. - --in-reply-to=<identifier>
-
Зробити так, щоб перший лист (або всі листи з
--no-thread) показувались як відповідь на вказаний Message-ID, що дозволяє уникнути розриву потоків для створення нової серії латок. Другий та наступні листи будуть надіслані як відповіді відповідно до налаштування--[no-]chain-reply-to.Так, наприклад, якщо вказано параметри
--threadта--no-chain-reply-to, друга та наступні латки будуть відповідями на першу, як показано на ілюстрації нижче, де [PATCHv20/3] є відповіддю на [PATCH0/2]:[PATCH 0/2] Here is what I did... [PATCH 1/2] Clean up and tests [PATCH 2/2] Implementation [PATCH v2 0/3] Here is a reroll [PATCH v2 1/3] Clean up [PATCH v2 2/3] New tests [PATCH v2 3/3] ImplementationПотрібно лише якщо також встановлено
--compose. Якщо--composeне встановлено, буде запропоновано це зробити. - --outlook-id-fix
- --no-outlook-id-fix
-
SMTP-сервери Microsoft Outlook відкидають ідентифікатор повідомлення (Message-ID), надісланий електронною поштою, і присвоюють новий випадковий ідентифікатор, тим самим порушуючи ланцюжок листування.
З параметром
--outlook-id-fixкомандаgitsend-emailвикористовує механізм, характерний для серверів Outlook, щоб дізнатися ідентифікатор повідомлення (Message-ID), який сервер призначив для виправлення структури ланцюжка листів. Використовуйте цей параметр лише в тому випадку, якщо ви впевнені, що сервер повідомляє про переписаний ідентифікатор повідомлення так само, як це роблять сервери Outlook.Якщо цей параметр не вказано, виправлення стандартно виконується під час звʼязку з «smtp.office365.com або smtp-mail.outlook.com. Використовуйте
--no-outlook-id-fix, щоб це вимкнути навіть під час зв’язку з цими двома серверами. - --subject=<string>
-
Вкажіть початкову тему електронного листа. Потрібно лише якщо також встановлено параметр
--compose. Якщо параметр--composeне встановлено, буде запропоновано ввести цю тему. - --to=<address>,…
-
Вкажіть основного одержувача згенерованих електронних листів. Зазвичай це буде відповідальний за розробку проєкту. Зазвичай використовується значення конфігурації
sendemail.to; якщо воно не вказано й--to-cmdне вказано також, буде запропоновано його ввести.Цей параметр можна вказати кілька разів.
- --8bit-encoding=<encoding>
-
Якщо ви зіткнулися з повідомленням, що містить не-ASCII-символи, або з темою, у якій не вказано кодування, додайте заголовки/цитування, щоб вказати, що воно закодовано у форматі <encoding>. Стандартним значенням є значення параметра
sendemail.assume8bitEncoding; якщо це значення не вказано, система запропонує його ввести при виявленні будь-яких файлів, що містять не-ASCII-символи.Зверніть увагу, що жодних спроб перевірити кодування не робиться.
- --compose-encoding=<encoding>
-
Вкажіть кодування повідомлення, що створюється. Стандартним значенням є значення параметра
sendemail.composeEncoding; якщо це значення не вказано, використовується UTF-8. - --transfer-encoding=(7bit|8bit|quoted-printable|base64|auto)
-
Вкажіть кодування передачі, яке буде використовуватися для надсилання повідомлення через SMTP. Параметр
7bitпризведе до помилки при виявленні повідомлення, що містить не-ASCII-символи.quoted-printableможе бути корисним, коли репозиторій містить файли з символами повернення каретки, але значно ускладнює ручну перевірку файлу електронного листа з необробленою латкою (як збережено з MUA).base64є ще більш надійним, але й ще більш непрозорим.autoвикористовуватиме8bit, коли це можливо, а в іншому випадку —quoted-printable.Типовим значенням є значення параметра конфігурації
sendemail.transferEncoding; якщо воно не вказано, типовим значенням єauto. - --xmailer
- --no-xmailer
-
Додати (або заборонити додавання) заголовка
X-Mailer:. Типово заголовок додається, але його можна вимкнути, встановивши для змінної конфігураціїsendemail.xmailerзначенняfalse.
Надсилання
- --envelope-sender=<address>
-
Вкажіть адресу відправника, яка використовується для надсилання електронних листів. Це корисно, якщо ваша стандартна адреса не є тією, на яку ви підписалися у списку розсилки. Щоб використовувати адресу
From, встановіть значенняauto. Якщо ви використовуєте бінарний файлsendmail, ви повинні мати відповідні права для параметра-f. Стандартним значенням є значення змінної конфігураціїsendemail.envelopeSender; якщо воно не вказане, вибір відправника листа залишається за вашим MTA. - --sendmail-cmd=<command>
-
Вкажіть команду для надсилання електронного листа. Команда має бути схожою на sendmail; зокрема, вона повинна підтримувати параметр
-i. Команда буде виконана в оболонці, якщо необхідно. Зазвичай використовується значенняsendemail.sendmailCmd. Якщо не вказано, а також не вказано--smtp-server,gitsend-emailшукатимеsendmailу/usr/sbin,/usr/libта$PATH. - --smtp-encryption=<encryption>
-
Вкажіть, яким чином починається шифрування для SMTP-зʼєднання. Допустимими значеннями є
sslтаtls. Будь-яке інше значення призведе до використання звичайного (незашифрованого) SMTP, який стандартно використовує порт 25. Незважаючи на назви, обидва значення використовуватимуть одну й ту саму нову версію TLS, але з історичних причин мають такі назви.sslозначає «неявне» шифрування (іноді його називають SMTPS), яке стандартно використовує порт 465.tlsозначає «явне» шифрування (часто відоме як STARTTLS), яке стандартно використовує порт 25. SMTP-сервер може використовувати й інші порти, які не є стандартними. Поширеним альтернативним портом дляtlsта незашифрованого режиму є 587. Вам потрібно перевірити документацію вашого провайдера або конфігурацію сервера, щоб переконатися у вашому конкретному випадку. Стандартним значенням є значенняsendemail.smtpEncryption. - --smtp-domain=<FQDN>
-
Вкажіть повне імʼя домену (FQDN, Fully Qualified Domain Name), яке використовується в команді HELO/EHLO для SMTP-сервера. Деякі сервери вимагають, щоб FQDN збігалося з вашою IP-адресою. Якщо це значення не вказано,
gitsend-emailспробує визначити ваш FQDN автоматично. Стандартним значенням є значенняsendemail.smtpDomain. - --smtp-auth=<mechanisms>
-
Список дозволених механізмів SMTP-AUTH, розділених пробілами. Цей параметр примусово використовує лише перелічені механізми. Приклад:
$ git send-email --smtp-auth="PLAIN LOGIN GSSAPI" ...
Якщо хоча б один із зазначених механізмів відповідає тим, що оголошуються SMTP-сервером, і якщо він підтримується використаною бібліотекою SASL, цей механізм використовується для автентифікації. Якщо не вказано а ні
sendemail.smtpAuth, а ні--smtp-auth, можна використовувати всі механізми, що підтримуються бібліотекою SASL. Спеціальне значенняnoneможе бути вказано для повного вимкнення автентифікації незалежно від--smtp-user. - --smtp-pass[=<password>]
-
Пароль для SMTP-AUTH. Аргумент необов’язковий: якщо аргумент не вказано, то як пароль використовується порожній рядок. Стандартне значення —
sendemail.smtpPass, проте--smtp-passзавжди замінює це значення.Крім того, паролі не потрібно вказувати у файлах конфігурації або в командному рядку. Якщо імʼя користувача було вказано (за допомогою
--smtp-userабоsendemail.smtpUser), але пароль не було вказано (за допомогою--smtp-passабоsendemail.smtpPass), то пароль отримується за допомогою git-credential[1]. - --no-smtp-auth
-
Вимкнути SMTP-автентифікацію. Скорочена форма
--smtp-auth=none. - --smtp-server=<host>
-
Вкажіть вихідний SMTP-сервер для використання (наприклад,
smtp.example.comабо необроблену IP-адресу). Якщо не вказано, а також не вказано--sendmail-cmd, зазвичайsendmailшукатиметься в/usr/sbin,/usr/libта$PATH, якщо така програма доступна, в іншому випадку повертатиметься доlocalhost.Для зворотної сумісності цей параметр також може вказувати повний шлях до програми, подібної до sendmail; програма повинна підтримувати параметр
-i. Цей метод не підтримує передачу аргументів або використання простих імен команд. У таких випадках використання розгляньте можливість використання--sendmail-cmd. - --smtp-server-port=<port>
-
Вкажіть порт, відмінний від стандартного порту (SMTP-сервери зазвичай прослуховують smtp-порт 25, але можуть також прослуховувати порт надсилання 587 або поширений SSL-smtp-порт 465); також приймаються символічні назви портів (наприклад,
submissionзамість 587). Порт також можна встановити за допомогою змінної конфігураціїsendemail.smtpServerPort. - --smtp-server-option=<option>
-
Вкажіть параметр вихідного SMTP-сервера, який потрібно використовувати. Стандартне значення можна вказати за допомогою параметра конфігурації
sendemail.smtpServerOption.Опцію
--smtp-server-optionпотрібно повторити для кожної опції, яку потрібно передати серверу. Аналогічно, для кожної опції потрібно використовувати різні рядки у файлах конфігурації. - --smtp-ssl
-
Застарілий псевдонім для
--smtp-encryptionssl. - --smtp-ssl-cert-path <path>
-
Шлях до сховища сертифікатів довірених центрів сертифікації (CA) для перевірки сертифікатів SMTP SSL/TLS (це може бути тека, оброблена командою
c_rehash, або окремий файл, що містить один або кілька сертифікатів у форматі PEM, об’єднаних у єдиний файл): докладнішу інформацію див. в описі опцій-CAfile<файл> та-CApath<dir> на сторінці довідки https://docs.openssl.org/master/man1/openssl-verify/ [verify(1) OpenSSL] для докладнішої інформації про це). Встановіть порожній рядок, щоб вимкнути перевірку сертифікатів. Стандартне значення — це значення змінної конфігураціїsendemail.smtpSSLCertPath, якщо вона встановлена, або стандартне значення, вбудоване в бібліотеку SSL, у протилежному випадку (що має бути найкращим вибором на більшості платформ). - --smtp-user=<user>
-
Імʼя користувача для SMTP-AUTH. Стандартне значення —
sendemail.smtpUser; якщо імʼя користувача не вказано (з--smtp-userабоsendemail.smtpUser), то спроба автентифікації не виконується. - --smtp-debug=(0|1)
-
Увімкнути (1) або вимкнути (0) вивід налагодження. Якщо ввімкнено, команди та відповіді SMTP будуть виведені. Корисно для налагодження проблем з підключенням TLS та автентифікацією.
- --imap-sent-folder=<folder>
-
Деякі постачальники послуг електронної пошти (наприклад, iCloud) не надсилають копії електронних листів, надісланих через SMTP, до теки «Надіслані» або подібної теки у вашій поштовій скриньці. Використовуйте цю опцію, щоб за допомогою команди
gitimap-sendнадіслати копію електронних листів до теки, вказаної за допомогою цієї опції. Ви можете виконати командуgitimap-send--list, щоб отримати список дійсних назв тек, включаючи правильну назву теки «Надіслані» у вашій поштовій скриньці. Ви також можете використовувати цю опцію для надсилання електронних листів до спеціальної теки IMAP на ваш вибір.Ця функція вимагає налаштування
gitimap-send. Див. інструкції за посиланням git-imap-send[1]. - --use-imap-only
- --no-use-imap-only
-
Якщо це встановлено, усі електронні листи будуть скопійовані лише до теки IMAP, зазначеної за допомогою
--imap-sent-folderабоsendemail.imapSentFolder, і не будуть надіслані одержувачам. Корисно, якщо ви просто хочете створити чернетку електронних листів і використовувати інший поштовий клієнт для їх надсилання. Якщо вимкнено за допомогою--no-use-imap-only, електронні листи будуть надіслані як завжди. Стандартно вимкнено, але для його ввімкнення можна використовувати змінну конфігураціїsendemail.useImapOnly.Ця функція вимагає налаштування
gitimap-send. Див. інструкції за посиланням git-imap-send[1]. - --batch-size=<num>
-
Деякі поштові сервери (наприклад, smtp.163.com) обмежують кількість електронних листів, що надсилаються за сеанс (зʼєднання), і це призведе до збою під час надсилання великої кількості повідомлень. З цією опцією send-email відключиться після надсилання <num> повідомлень і зачекає кілька секунд (див.
--relogin-delay), а потім знову підключиться, щоб обійти таке обмеження. Ви можете використовувати певний помічник з обліковими даними, щоб уникнути необхідності повторно вводити пароль щоразу, коли це трапляється. Стандартно використовується змінна конфігураціїsendemail.smtpBatchSize. - --relogin-delay=<int>
-
Очікування <int> секунд перед повторним підключенням до SMTP-сервера. Використовується разом з опцією
--batch-size. Стандартно використовується змінна конфігураціїsendemail.smtpReloginDelay.
Автоматизація
- --no-to
- --no-cc
- --no-bcc
-
Очистити будь-який список адрес
To:,Cc:,Bcc:, раніше встановлений через конфігурацію. - --no-identity
-
Очистити раніше зчитане значення
sendemail.identity, встановлене через конфігурацію, якщо таке є. - --to-cmd=<command>
-
Вкажіть команду, яку потрібно виконати один раз для кожного файлу латки, щоб генерувати записи
To:, специфічні для файлу латки. Вивід цієї команди має бути однією адресою електронної пошти на рядок. Стандартно використовується значення конфігураціїsendemail.toCmd. - --cc-cmd=<command>
-
Вкажіть команду, яку потрібно виконати один раз для кожного файлу латки, щоб створити записи
Cc:, специфічні для файлу латки. Вивід цієї команди має бути однією адресою електронної пошти на рядок. Стандартно використовується значення конфігураціїsendemail.ccCmd. - --header-cmd=<command>
-
Вкажіть команду, яка виконується один раз для кожного вихідного повідомлення, та виведіть рядки заголовків у стилі RFC 2822, які потрібно вставити в них. Якщо встановлено змінну конфігурації
sendemail.headerCmd, її значення завжди використовується. Якщо в командному рядку вказано--header-cmd, її значення має пріоритет над значенням змінної конфігураціїsendemail.headerCmd. - --no-header-cmd
-
Вимкніть будь-яку команду заголовка, що використовується.
- --chain-reply-to
- --no-chain-reply-to
-
Якщо це встановлено, кожен електронний лист буде надіслано як відповідь на попередньо надісланий електронний лист. Якщо вимкнено за допомогою
--no-chain-reply-to, усі електронні листи після першого будуть надіслані як відповіді на перший надісланий електронний лист. Під час використання цього рекомендується, щоб перший наданий файл був оглядом усієї серії латок. Стандартно вимкнено, але для його ввімкнення можна використовувати змінну конфігураціїsendemail.chainReplyTo. - --identity=<identity>
-
Ідентифікатор конфігурації. Якщо задано, значення в підрозділі
sendemail.<identity> матимуть пріоритет над значеннями в розділіsendemail. Стандартним ідентифікатором є значенняsendemail.identity. - --signed-off-by-cc
- --no-signed-off-by-cc
-
Якщо це значення встановлено, до списку копій додаються електронні адреси, знайдені в трейлері
Signed-off-byабо рядкахCc:. Стандартно використовується значення конфігураціїsendemail.signedOffByCc; якщо це значення не вказано, використовується —--signed-off-by-cc. - --cc-cover
- --no-cc-cover
-
Якщо це значення встановлено, електронні листи, знайдені в заголовках
Cc:у першій латці серії (зазвичай супровідний лист), додаються до списку копій для кожного набору електронних листів. Стандартне значення — це значення конфігураціїsendemail.ccCover; якщо воно не вказано, значення —--no-cc-cover. - --to-cover
- --no-to-cover
-
Якщо це значення встановлено, електронні листи, знайдені в заголовках
To:у першій латці серії (зазвичай супровідний лист), додаються до списку "Кому" для кожного набору електронних листів. Стандартне значення — це значення конфігураціїsendemail.toCover; якщо воно не вказано, значення —--no-to-cover. - --suppress-cc=<category>
-
Вкажіть додаткову категорію одержувачів, щоб приховати автоматичне надсилання копії:
-
authorдозволить уникнути зазначення імені автора латки. -
selfуникатиме вказівки відправника. -
ccуникатиме включення будь-кого, згаданого в рядках Cc у заголовку латки, окрім self (для цього використовуйтеself). -
bodyccуникне включення будь-кого, згаданого в рядках Cc, до тіла латки (повідомлення коміту), окрім self (для цього використовуйтеself). -
sobуникатиме врахування будь-кого, згаданого в трейлерах Signed-off-by, окрім себе (для цього використовуйтеself). -
misc-byуникатиме включати будь-кого, згаданого в рядках Acked-by, Reviewed-by, Tested-by та інших рядках з "-by" в тілі латки, окрім Signed-off-by (для цього використовуйтеsob). -
cccmdуникне запуску --cc-cmd. -
bodyеквівалентноsob+bodycc+misc-by. -
allпридушить усі значення автоматичного копіювання.
Стандартне значення — значення конфігурації
sendemail.suppressCc; якщо воно не вказано, використовується —self, якщо вказано —--suppress-from, а також —body, якщо вказано--no-signed-off-cc. -
- --suppress-from
- --no-suppress-from
-
Якщо це значення встановлено, не додавати адресу
From:до спискуCc:. Зазвичай використовується значення конфігураціїsendemail.suppressFrom; якщо це значення не вказано, використовується —--no-suppress-from. - --thread
- --no-thread
-
Якщо це встановлено, заголовки
In-Reply-ToтаReferencesбудуть додаватися до кожного надісланого електронного листа. Те, чи посилається кожен лист на попередній лист (глибока потоковість згідно з формулюваннямgitformat-patch), чи на перший лист (поверхнева потоковість), визначається--[no-]chain-reply-to.Якщо вимкнено за допомогою
--no-thread, ці заголовки не будуть додані (якщо не вказано за допомогою--in-reply-to). Стандартно використовується значення конфігураціїsendemail.thread; якщо воно не вказано, використовується —--thread.Користувач повинен переконатися, що заголовок In-Reply-To ще не існує, коли
gitsend-emailзапитується на його додавання (особливо зверніть увагу, щоgitformat-patchможна налаштувати на власне виконання потоків). Невиконання цієї вимоги може не призвести до очікуваного результату в MUA одержувача. - --mailmap
- --no-mailmap
-
Використовуйте файл mailmap (див. gitmailmap[5]), щоб зіставити всі адреси з їхнім канонічним справжнім іменем та адресою електронної пошти. Додаткові дані mailmap, специфічні для
gitsend-email, можна надати за допомогою значень конфігураціїsendemail.mailmap.fileабоsendemail.mailmap.blob. Стандартно —sendemail.mailmap.
Адміністрування
- --confirm=<mode>
-
Підтвердьте безпосередньо перед відправленням:
-
alwaysзавжди підтверджуватиме перед надсиланням. -
neverніколи не підтверджуватиме перед надсиланням. -
ccпідтвердить перед надсиланням, коли send-email автоматично додасть адреси з латки до списку копій. -
composeпідтвердить надсилання першого повідомлення при використанні --compose. -
autoеквівалентноcc+compose.
Стандартне значення — значення конфігурації
sendemail.confirm; якщо воно не вказано, використовується значенняauto, якщо не було вказано жодного з параметрів придушення, у такому разі використовується значенняcompose. -
- --dry-run
-
Зробіть усе, крім фактичного надсилання електронних листів.
- --format-patch
- --no-format-patch
-
Коли аргумент можна розуміти або як посилання, або як імʼя файлу, виберіть, чи розуміти його як аргумент format-patch (
--format-patch), або як імʼя файлу (--no-format-patch). Стандартно, коли виникає такий конфлікт,gitsend-emailзавершиться невдачею. - --quiet
-
Зменшити обсяг виводу команди
gitsend-email. У виводі має бути лише один рядок на кожен лист. - --validate
- --no-validate
-
Виконувати перевірки латок на безпеку. Наразі валідація означає наступне:
-
Викликати гачок sendemail-validate, якщо він є (див. githooks[5]).
-
Попереджати про латки, що містять рядки довжиною понад 998 символів, якщо не використовується відповідне кодування передачі (
auto,base64абоquoted-printable); це пов’язано з обмеженнями SMTP, як описано в https://www.ietf.org/rfc/rfc5322.txt.
Стандартне значення —
sendemail.validate; якщо це значення не встановлено, використовується значення--validate. -
- --force
-
Надсилати електронні листи, навіть якщо цьому забороняють перевірки безпеки.
Інформація
- --dump-aliases
-
Замість звичайної операції, вивести скорочені псевдоніми з налаштованого(их) файлу(ів) псевдонімів, по одному на рядок в алфавітному порядку. Зверніть увагу, що це включає лише псевдонім, а не його розширені адреси електронної пошти. Див.
sendemail.aliasesFileдля отримання додаткової інформації про псевдоніми. - --translate-aliases
-
Замість звичайної операції, читати зі стандартного вводу та інтерпретувати кожен рядок як псевдонім електронної пошти. Перетворювати його відповідно до налаштованого(их) файлу(ів) псевдонімів. Виводити кожне перетворене імʼя та адресу електронної пошти у стандартний вивід, по одному на рядок. Див.
sendemail.aliasFileдля отримання додаткової інформації про псевдоніми.
КОНФІГУРАЦІЯ
Все, що знаходиться нижче цього рядка в цьому розділі, вибірково включено з документації git-config[1]. Вміст такий самий, як і там:
|
Warning
|
Missing See original version for this content. |
ПРИКЛАДИ SMTP-СЕРВЕРІВ
Використання Gmail як SMTP-сервера
Щоб використовувати git send-email для надсилання латок через SMTP-сервер Gmail, відредагуйте ~/.gitconfig, щоб вказати налаштування облікового запису:
[sendemail] smtpEncryption = ssl smtpServer = smtp.gmail.com smtpUser = yourname@gmail.com smtpServerPort = 465
Gmail не дозволяє використовувати ваш звичайний пароль для git send-email. Якщо у вашому обліковому записі Gmail налаштовано багатофакторну автентифікацію, ви можете створити пароль для програми, який використовуватиметься з git send-email. Щоб створити його, відвідайте сторінку https://security.google.com/settings/security/apppasswords.
Або ж замість використання пароля для програми ви можете використовувати автентифікацію OAuth2.0 з Gmail. OAuth2.0 безпечніший за паролі для програми та працює незалежно від того, чи налаштовано багатофакторну автентифікацію. OAUTHBEARER та XOAUTH2 — це поширені механізми, що використовуються для цього типу автентифікації. Gmail підтримує обидва. Наприклад, якщо ви хочете використовувати OAUTHBEARER, відредагуйте файл ~/.gitconfig та додайте smtpAuth = OAUTHBEARER до налаштувань облікового запису:
[sendemail] smtpEncryption = ssl smtpServer = smtp.gmail.com smtpUser = yourname@gmail.com smtpServerPort = 465 smtpAuth = OAUTHBEARER
Іншою альтернативою є використання інструменту, розробленого Google, відомого як sendgmail, для надсилання електронних листів за допомогою git send-email.
Використання Microsoft Outlook як SMTP-сервера
На відміну від Gmail, Microsoft Outlook більше не підтримує паролі для окремих програм. Тому для Outlook необхідно використовувати автентифікацію OAuth2.0. Крім того, він підтримує лише механізм автентифікації XOAUTH2.
Відредагуйте ~/.gitconfig, щоб вказати налаштування облікового запису для Outlook та використовувати його SMTP-сервер за допомогою git send-email:
[sendemail] smtpEncryption = tls smtpServer = smtp.office365.com smtpUser = yourname@outlook.com smtpServerPort = 587 smtpAuth = XOAUTH2
НАДСИЛАННЯ ЛАТОК
Як тільки ваші коміти будуть готові до надсилання до списку розсилки, виконайте такі команди:
$ git format-patch --cover-letter -M origin/master -o outgoing/ $ edit outgoing/0000-* $ git send-email outgoing/*
Під час першого запуску вам буде запропоновано ввести облікові дані. Введіть пароль для програми або звичайний пароль, залежно від обставин.
Якщо у вас налаштовано допоміжний засіб облікових даних (див. git-credential[1]), пароль буде збережено у сховищі облікових даних, тому вам не доведеться вводити його наступного разу.
Якщо ви використовуєте автентифікацію OAuth2.0, вам потрібно буде використовувати токен доступу замість пароля, коли буде запропоновано. Різні генератори токенів OAuth2.0 доступні в Інтернеті. Також доступні помічники з обліковими даними, що підтримуються спільнотою:
-
git-credential-gmail (кросплатформний, спеціалізований помічник для автентифікації облікових записів Gmail)
-
git-credential-outlook (кросплатформний, спеціалізований помічник для автентифікації облікових записів Microsoft Outlook)
-
git-credential-yahoo (кросплатформний, спеціалізований помічник для автентифікації облікових записів Yahoo)
-
git-credential-aol (кросплатформний, спеціалізований помічник для автентифікації облікових записів AOL)
Ви також можете переглянути gitcredentials[7] для отримання додаткових помічників автентифікації на основі OAuth.
Proton Mail не надає SMTP-сервер для надсилання електронних листів. Якщо ви є платним клієнтом Proton Mail, ви можете скористатися Proton Mail Bridge, офіційно наданим Proton Mail, для створення локального SMTP-сервера для надсилання електронних листів. Як для безкоштовних, так і для платних користувачів можна використовувати проекти, що підтримуються спільнотою, такі як git-protonmail.
Примітка: потрібні такі основні модулі Perl, які можуть бути встановлені разом з вашим дистрибутивом Perl:
Також потрібні ці додаткові модулі Perl:
Використання опції sendmailCmd команди git send-email
Окрім надсилання електронних листів через SMTP-сервер, git send-email також може надсилати електронні листи через будь-яку програму, яка підтримує команди, подібні до sendmail. Ви можете ознайомитися з документацією --sendmail-cmd=<команда> вище для отримання додаткової інформації. Ця можливість може бути дуже корисною, якщо ви хочете використовувати іншу програму як SMTP-клієнт для git send-email, або якщо ваш постачальник послуг електронної пошти використовує власні API замість SMTP для надсилання електронних листів.
Як приклад, розгляньмо, як налаштувати msmtp, популярний SMTP-клієнт, який можна знайти в багатьох дистрибутивах Linux. Відредагуйте ~/.gitconfig, щоб вказати git-send-email використовувати його для надсилання електронних листів.
[sendemail] sendmailCmd = /usr/bin/msmtp # Змініть це на шлях, де встановлено msmtp
Посилання на кількох таких помічників, що підтримуються спільнотою, є:
-
msmtp (популярний SMTP-клієнт з багатьма функціями, доступний для Linux та macOS)
-
git-protonmail (кросплатформний клієнт, який може надсилати електронні листи за допомогою API ProtonMail)
-
git-msgraph (кросплатформний клієнт, який може надсилати електронні листи за допомогою Microsoft Graph API)
ДИВ. ТАКОЖ
git-format-patch[1], git-imap-send[1], mbox(5)
GIT
Частина набору git[1]