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.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-format-patch[1], може бути переданий до git
send-email
, як і опції, що розуміються 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>,…
-
Вкажіть початкове значення поля «Копія» для кожного електронного листа. За замовчуванням використовується значення
sendemail.cc
.Цей параметр можна вказати кілька разів.
- --compose
-
Викличте текстовий редактор (див. GIT_EDITOR у git-var[1]), щоб відредагувати вступне повідомлення для серії патчів.
Коли використовується
--compose
,git
send-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
, якщо воно не встановлено, як повертаєтьсяgit
var
-l
. - --reply-to=<address>
-
Вкажіть адресу, на яку мають надходити відповіді від одержувачів. Використовуйте це, якщо відповіді на повідомлення мають надходити на адресу, відмінну від тієї, що вказана параметром
--from
. - --in-reply-to=<identifier>
-
Зробити так, щоб перший лист (або всі листи з
--no-thread
) відображалися як відповідь на заданий ідентифікатор повідомлення, що дозволяє уникнути розриву потоків для створення нової серії патчів. Другий та наступні листи будуть надіслані як відповіді відповідно до налаштування--
[no-
]chain-reply-to
.Наприклад, коли вказано
--thread
та--no-chain-reply-to
, другий та наступні патчі будуть відповідями на перший, як на ілюстрації нижче, де [PATCH
v2
0/3
] є відповіддю на [PATCH
0/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
не встановлено, буде запропоновано це зробити. - --[no-]outlook-id-fix
-
SMTP-сервери Microsoft Outlook відкидають ідентифікатор повідомлення, надісланий електронною поштою, та призначають новий випадковий ідентифікатор повідомлення, таким чином розриваючи потоки.
З параметром
--outlook-id-fix
,git
send-email
використовує механізм, специфічний для серверів Outlook, щоб дізнатися Message-ID, який сервер призначив для виправлення потоків. Використовуйте його лише тоді, коли ви знаєте, що сервер повідомляє про переписаний 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
,git
send-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), яке використовується в команді HELO/EHLO для SMTP-сервера. Деякі сервери вимагають, щоб FQDN збігалося з вашою IP-адресою. Якщо не встановлено,
git
send-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-encryption
ssl
. - --smtp-ssl-cert-path
-
Шлях до сховища довірених сертифікатів CA для перевірки сертифікатів SMTP SSL/TLS (або каталог, оброблений
c_rehash
, або окремий файл, що містить один або кілька сертифікатів формату PEM, об’єднаних разом: див. опис опцій-CAfile
<file> та-CApath
<dir> на https://docs.openssl.org/master/man1/openssl-verify/ [сторінка довідника OpenSSL verify(1)] для отримання додаткової інформації про них). Встановіть значення порожнього рядка, щоб вимкнути перевірку сертифіката. За замовчуванням використовується значення змінної конфігураціїsendemail.smtpSSLCertPath
, якщо вона встановлена, або скомпільоване значення за замовчуванням бібліотеки SSL, якщо воно не встановлено (що має бути найкращим вибором на більшості платформ). - --smtp-user=<user>
-
Ім’я користувача для SMTP-AUTH. Значення за замовчуванням –
sendemail.smtpUser
; якщо ім’я користувача не вказано (з--smtp-user
абоsendemail.smtpUser
), то спроба автентифікації не виконується. - --smtp-debug=(0|1)
-
Увімкнути (1) або вимкнути (0) вивід налагодження. Якщо ввімкнено, команди та відповіді SMTP будуть виведені. Корисно для налагодження проблем з підключенням TLS та автентифікацією.
- --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
-
Очищає будь-який список адрес "Кому:", "Копія:", "Прихована копія:", попередньо встановлений через конфігурацію.
- --no-identity
-
Очищає раніше зчитане значення
sendemail.identity
, встановлене через конфігурацію, якщо таке є. - --to-cmd=<command>
-
Вкажіть команду, яку потрібно виконати один раз для кожного файлу патча, щоб генерувати записи Кому:, специфічні для файлу патча. Вивід цієї команди має бути однією адресою електронної пошти на рядок. За замовчуванням використовується значення конфігурації
sendemail.toCmd
. - --cc-cmd=<command>
-
Вкажіть команду, яку потрібно виконати один раз для кожного файлу патча, щоб створити записи
Cc:
, специфічні для файлу патча. Вивід цієї команди має бути однією адресою електронної пошти на рядок. За замовчуванням використовується значення конфігураціїsendemail.ccCmd
. - --header-cmd=<command>
-
Вкажіть команду, яка виконується один раз для кожного вихідного повідомлення, та виведіть рядки заголовків у стилі RFC 2822, які потрібно вставити в них. Якщо встановлено змінну конфігурації
sendemail.headerCmd
, її значення завжди використовується. Якщо в командному рядку вказано--header-cmd
, її значення має пріоритет над значенням змінної конфігураціїsendemail.headerCmd
. - --no-header-cmd
-
Вимкніть будь-яку команду заголовка, що використовується.
- --[no-]chain-reply-to
-
Якщо це встановлено, кожен електронний лист буде надіслано як відповідь на попередньо надісланий електронний лист. Якщо вимкнено за допомогою
--no-chain-reply-to
, усі електронні листи після першого будуть надіслані як відповіді на перший надісланий електронний лист. Під час використання цього рекомендується, щоб перший наданий файл був оглядом усієї серії патчів. За замовчуванням вимкнено, але для його ввімкнення можна використовувати змінну конфігураціїsendemail.chainReplyTo
. - --identity=<identity>
-
Ідентифікатор конфігурації. Якщо задано, значення в підрозділі
sendemail.
<identity> матимуть пріоритет над значеннями в розділіsendemail
. Ідентифікатором за замовчуванням є значенняsendemail.identity
. - --[no-]signed-off-by-cc
-
Якщо це значення встановлено, до списку копій додаються електронні адреси, знайдені в трейлері
Signed-off-by
або рядкахCc:
. За замовчуванням використовується значення конфігураціїsendemail.signedOffByCc
; якщо це значення не вказано, за замовчуванням використовується--signed-off-by-cc
. - --[no-]cc-cover
-
Якщо це значення встановлено, електронні листи, знайдені в заголовках
Cc:
у першому патчі серії (зазвичай супровідний лист), додаються до списку копій для кожного набору електронних листів. Значення за замовчуванням – це значення конфігураціїsendemail.ccCover
; якщо воно не вказано, значення за замовчуванням –--no-cc-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
. -
- --[no-]suppress-from
-
Якщо це значення встановлено, не додавати адресу
From:
до спискуCc:
. За замовчуванням використовується значення конфігураціїsendemail.suppressFrom
; якщо це значення не вказано, за замовчуванням використовується--no-suppress-from
. - --[no-]thread
-
Якщо це встановлено, заголовки
In-Reply-To
таReferences
будуть додаватися до кожного надісланого електронного листа. Те, чи посилається кожен лист на попередній лист (глибока потоковість згідно з формулюваннямgit
format-patch
), чи на перший лист (поверхнева потоковість), визначається--
[no-
]chain-reply-to
.Якщо вимкнено за допомогою
--no-thread
, ці заголовки не будуть додані (якщо не вказано за допомогою--in-reply-to
). За замовчуванням використовується значення конфігураціїsendemail.thread
; якщо воно не вказано, за замовчуванням використовується--thread
.Користувач повинен переконатися, що заголовок In-Reply-To ще не існує, коли
git
send-email
запитується на його додавання (особливо зверніть увагу, щоgit
format-patch
можна налаштувати на власне виконання потоків). Невиконання цієї вимоги може не призвести до очікуваного результату в MUA одержувача. - --[no-]mailmap
-
Використовуйте файл mailmap (див. gitmailmap[5]), щоб зіставити всі адреси з їхнім канонічним справжнім іменем та адресою електронної пошти. Додаткові дані mailmap, специфічні для
git
send-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
-
Зробіть усе, крім фактичного надсилання електронних листів.
- --[no-]format-patch
-
Коли аргумент можна розуміти або як посилання, або як ім’я файлу, виберіть, чи розуміти його як аргумент format-patch (
--format-patch
), або як ім’я файлу (--no-format-patch
). За замовчуванням, коли виникає такий конфлікт,git
send-email
завершиться невдачею. - --quiet
-
Зробіть
git
send-email
менш багатослівним. Один рядок на кожен електронний лист має бути виведений повністю. - --[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 = tls smtpServer = smtp.gmail.com smtpUser = yourname@gmail.com smtpServerPort = 587
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 = tls smtpServer = smtp.gmail.com smtpUser = yourname@gmail.com smtpServerPort = 587 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
використовувати його для надсилання електронних листів.
[надіслати електронну пошту] sendmailCmd = /usr/bin/msmtp # Change this to the path where msmtp is installed
Посилання на кількох таких помічників, що підтримуються спільнотою, є:
-
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]