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.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. Це дозволяє надсилати патчі так само, як і інші електронні листи, якщо використовуються поштові клієнти, які не можуть безпосередньо читати файли поштових скриньок. Команда також працює з будь-якою загальною поштовою скринькою, в якій електронні листи мають поля Від, Дата та Тема у такому порядку.
Типове використання щось на кшталт:
$ git format-patch --signoff --stdout --attach origin | git imap-send
ОПЦІЇ
- -v
- --verbose
-
Будьте багатослівними.
- -q
- --quiet
-
Будь тихий.
- -f <folder>
- --folder=<folder>
-
Вкажіть папку, в якій мають зберігатися електронні листи. Наприклад: --folder=[Gmail]/Чернетки або -f INBOX/Чернетки.
- --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. |
ОТРИМАННЯ СПИСКУ ДОСТУПНИХ ПАПОК
Щоб надіслати електронного листа до певної папки, вам потрібно знати правильну назву потрібної папки у вашій поштовій скриньці. Такі назви, як «Небажана пошта», «Кошик» тощо, що відображаються різними поштовими клієнтами, не обов’язково мають бути фактичними назвами папок, що зберігаються на поштовому сервері вашого постачальника послуг електронної пошти.
Щоб отримати правильну назву папки для використання з git
imap-send
, ви можете виконати git
imap-send
--list
. Це відобразить список дійсних назв папок. Приклад такого виводу під час запуску в обліковому записі Gmail:
* LIST (\HasNoChildren) "/" "ВХІДНІ" * LIST (\HasChildren \Noselect) "/" "[Gmail]" * LIST (\All \HasNoChildren) "/" "[Gmail]/Уся пошта" * LIST (\Drafts \HasNoChildren) "/" "[Gmail]/Чернетки" * LIST (\HasNoChildren \Important) "/" "[Gmail]/Важливо" * LIST (\HasNoChildren \Sent) "/" "[Gmail]/Надісланий лист" * LIST (\HasNoChildren \Junk) "/" "[Gmail]/Спам" * LIST (\Flagged \HasNoChildren) "/" "[Gmail]/Позначено зірочкою" * LIST (\HasNoChildren \Trash) "/" "[Gmail]/Сміття"
Тут ви можете помітити, що правильна назва папки «Небажана пошта» – [Gmail
]/Spam
, а папки «Кошик» – [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]/Чернетки" 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 налаштовано іншу мову, ніж англійська, назву папки «Чернетки» буде локалізовано. |
Якщо ви хочете використовувати автентифікацію на основі OAuth2.0, ви можете вказати механізм OAUTHBEARER
або XOAUTH2
у своїй конфігурації. Це безпечніше, ніж використання паролів для окремих програм, а також не вимагає багатофакторної автентифікації. Під час використання цієї автентифікації вам доведеться використовувати токен доступу OAuth2.0 замість пароля.
[imap] folder = "[Gmail]/Чернетки" host = imaps://imap.gmail.com user = user@gmail.com port = 993 authmethod = OAUTHBEARER
Використання інтерфейсу IMAP Outlook:
На відміну від Gmail, Outlook підтримує лише автентифікацію на основі OAuth2.0. Також він підтримує лише механізм XOAUTH2
.
[imap] folder = "Чернетки" 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]