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.1 → 2.54.0 no changes
-
2.51.0
2025-08-18
- 2.43.2 → 2.50.1 no changes
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
- 2.38.1 → 2.42.4 no changes
-
2.38.0
2022-10-02
- 2.29.1 → 2.37.7 no changes
-
2.29.0
2020-10-19
- 2.20.1 → 2.28.1 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.4.12 → 2.17.6 no changes
-
2.3.10
2015-09-28
-
2.2.3
2015-09-04
- 2.1.4 no changes
-
2.0.5
2014-12-17
ОПИСАНИЕ
Эта команда загружает почтовый ящик, созданный с помощью git format-patch, в папку черновиков IMAP. Это позволяет отправлять патчи как обычную электронную почту при использовании почтовых клиентов, которые не могут напрямую читать файлы почтовых ящиков. Команда также работает с любым обычным почтовым ящиком, в котором письма имеют поля From, Date и Subject в указанном порядке.
Типичное использование выглядит примерно так:
$ git format-patch --signoff --stdout --attach origin | git imap-send
ПАРАМЕТРЫ
- -v
- --verbose
-
Быть многословнее.
- -q
- --quiet
-
Тихий режим.
- -f <папка>
- --folder=<папка>
-
Указывает папку, в которой должны быть сохранены письма. Например:
--folder=[Gmail]/Draftsили-fINBOX/Drafts. - --curl
-
Использовать libcurl для связи с сервером IMAP, если не используется туннель. Игнорируется, если Git был собран без установленного параметра USE_CURL_FOR_IMAP_SEND.
- --no-curl
-
Общаться с сервером IMAP, используя собственные процедуры IMAP git вместо libcurl. Игнорируется, если Git был собран с установленным параметром NO_OPENSSL.
- --list
-
Выполнить команду IMAP LIST, чтобы вывести список всех существующих папок.
КОНФИГУРАЦИЯ
Чтобы использовать инструмент, imap.folder и либо imap.tunnel, либо imap.host должны быть установлены в соответствующие значения.
Дальнейшее содержание этого раздела (в отличие от того, что было описано до данной строки), повторяет то, что может быть найдено в git-config[1]:
|
Warning
|
Missing See original version for this content. |
ПОЛУЧЕНИЕ СПИСКА ДОСТУПНЫХ ПАПОК
Чтобы отправить электронное письмо в определённую папку, вам нужно знать правильное имя целевой папки в вашем почтовом ящике. Имена, такие как «Junk», «Trash» и т.д., отображаемые различными почтовыми клиентами, не обязательно являются фактическими именами папок, хранящихся на почтовом сервере вашего провайдера.
Чтобы получить правильное имя папки для использования с git imap-send, вы можете выполнить git imap-send --list. Это отобразит список допустимых имён папок. Пример такого вывода при запуске в учётной записи Gmail:
* LIST (\HasNoChildren) "/" "INBOX" * LIST (\HasChildren \Noselect) "/" "[Gmail]" * LIST (\All \HasNoChildren) "/" "[Gmail]/All Mail" * LIST (\Drafts \HasNoChildren) "/" "[Gmail]/Drafts" * LIST (\HasNoChildren \Important) "/" "[Gmail]/Important" * LIST (\HasNoChildren \Sent) "/" "[Gmail]/Sent Mail" * LIST (\HasNoChildren \Junk) "/" "[Gmail]/Spam" * LIST (\Flagged \HasNoChildren) "/" "[Gmail]/Starred" * LIST (\HasNoChildren \Trash) "/" "[Gmail]/Trash"
Здесь вы можете заметить, что правильное имя для папки «Junk» — [Gmail]/Spam, а для папки «Trash» — [Gmail]/Trash. Аналогичную логику можно использовать для определения и других папок.
ПРИМЕРЫ
Использование туннельного режима:
[imap]
folder = "INBOX.Drafts"
tunnel = "ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2> /dev/null"
Использование прямого режима:
[imap]
folder = "INBOX.Drafts"
host = imap://imap.example.com
user = bob
pass = p4ssw0rd
Использование прямого режима с SSL:
[imap]
folder = "INBOX.Drafts"
host = imaps://imap.example.com
user = bob
pass = p4ssw0rd
port = 123
; sslVerify = false
|
Note
|
Возможно, вы захотите использовать sslVerify=false при устранении неполадок, если подозреваете, что причиной проблем с подключением является то, что сертификат, который вы используете на частном сервере example.com, который вы пытаетесь настроить (или настроили), может быть неправильно проверен.
|
Использование интерфейса IMAP Gmail:
[imap]
folder = "[Gmail]/Drafts"
host = imaps://imap.gmail.com
user = user@gmail.com
port = 993
Gmail не позволяет использовать ваш обычный пароль для git imap-send. Если у вас настроена многофакторная аутентификация для вашей учётной записи Gmail, вы можете создать пароль для конкретного приложения для использования с git imap-send. Посетите https://security.google.com/settings/security/apppasswords, чтобы создать его. В качестве альтернативы используйте аутентификацию OAuth2.0, как описано ниже.
|
Note
|
Возможно, вам потребуется вместо этого использовать: folder = "[Google Mail]/Drafts", если вы получите ошибку, что "Папка не существует". Вы также можете выполнить git imap-send --list, чтобы получить список доступных папок.
|
|
Note
|
Если ваша учётная запись Gmail установлена на другой язык, отличный от английского, имя папки "Drafts" будет локализовано. |
Если вы хотите использовать аутентификацию на основе OAuth2.0, вы можете указать механизм OAUTHBEARER или XOAUTH2 в своей конфигурации. Это более безопасно, чем использование паролей для конкретных приложений, а также не требует наличия многофакторной аутентификации. Вам нужно будет использовать токен доступа OAuth2.0 вместо вашего пароля при использовании этой аутентификации.
[imap]
folder = "[Gmail]/Drafts"
host = imaps://imap.gmail.com
user = user@gmail.com
port = 993
authmethod = OAUTHBEARER
Использование интерфейса IMAP Outlook:
В отличие от Gmail, Outlook поддерживает только аутентификацию на основе OAuth2.0. Кроме того, он поддерживает только XOAUTH2 в качестве механизма.
[imap]
folder = "Drafts"
host = imaps://outlook.office365.com
user = user@outlook.com
port = 993
authmethod = XOAUTH2
Как только коммиты будут готовы к отправке, выполните следующую команду:
$ git format-patch --cover-letter -M --stdout origin/master | git imap-send
Просто убедитесь, что вы отключили перенос строк в почтовом клиенте (веб-интерфейс Gmail всегда будет переносить строки, поэтому вам нужно использовать настоящий IMAP-клиент).
Если вы используете аутентификацию OAuth2.0, проще использовать помощников учётных данных для генерации токенов. Помощники учётных данных, предлагаемые в git-send-email[1], также могут использоваться для git imap-send.
ВНИМАНИЕ
Тем не менее, ваша ответственность — убедиться, что сообщение электронной почты, отправленное вашей почтовой программой, соответствует стандартам вашего проекта. Многие проекты не любят, когда патчи прикрепляются. Некоторые почтовые агенты будут преобразовывать патчи (например, переносить строки, отправлять их как format=flowed) таким образом, что они перестанут работать. Вы получите гневные сообщения, высмеивающие вас, если вы этого не проверите.
Thunderbird, в частности, известен своими проблемами. Пользователи Thunderbird могут посетить эту веб-страницу для получения дополнительной информации: https://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email
СМ. ТАКЖЕ
git-format-patch[1], git-send-email[1], mbox(5)
GIT
Является частью пакета git[1]