設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.50.1 無更改
-
2.50.0
2025-06-16
- 2.47.1 → 2.49.1 無更改
-
2.47.0
2024-10-06
- 2.45.1 → 2.46.4 無變化
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.4 無更改
-
2.44.0
2024-02-23
- 2.43.2 → 2.43.7 無變更
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
- 2.41.1 → 2.42.4 無更改
-
2.41.0
2023-06-01
- 2.39.1 → 2.40.4 無更改
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 無更改
-
2.38.0
2022-10-02
- 2.35.1 → 2.37.7 無更改
-
2.35.0
2022-01-24
- 2.33.1 → 2.34.8 無變化
-
2.33.0
2021-08-16
- 2.30.2 → 2.32.7 無更改
-
2.30.1
2021-02-08
-
2.30.0
2020-12-27
- 2.24.1 → 2.29.3 無更改
-
2.24.0
2019-11-04
- 2.23.1 → 2.23.4 無更改
-
2.23.0
2019-08-16
- 2.22.2 → 2.22.5 無更改
-
2.22.1
2019-08-11
- 2.21.1 → 2.22.0 無更改
-
2.21.0
2019-02-24
- 2.20.1 → 2.20.5 無更改
-
2.20.0
2018-12-09
- 2.19.1 → 2.19.6 無更改
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 無更改
-
2.18.0
2018-06-21
- 2.17.1 → 2.17.6 無更改
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
- 2.15.4 無更改
-
2.14.6
2019-12-06
- 2.13.7 無更改
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 無更改
-
2.9.5
2017-07-30
- 2.8.6 無更改
-
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 無變更
-
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-format-patch[1] 理解的選項,都可以傳遞給 git send-email。
電子郵件的頭部可以透過命令列選項進行配置。如果在命令列中未指定,使用者將看到一個啟用 ReadLine 的介面,以提供必要的資訊。
補丁檔案接受兩種格式
-
mbox 格式檔案
這是 git-format-patch[1] 生成的格式。大多數頭部和 MIME 格式會被忽略。
-
Greg Kroah-Hartman 的 send_lots_of_email.pl 指令碼使用的原始格式
這種格式要求檔案的第一行包含 "Cc:" 值,第二行包含郵件的 "Subject:"。
選項
撰寫
- --annotate
-
審查和編輯您即將傳送的每個補丁。預設值為
sendemail.annotate
的值。有關sendemail.multiEdit
,請參閱 CONFIGURATION(配置)部分。 - --bcc=<address>,…
-
為每封電子郵件指定一個 "Bcc:" 值。預設值為
sendemail.bcc
的值。此選項可以多次指定。
- --cc=<address>,…
-
為每封電子郵件指定一個起始 "Cc:" 值。預設值為
sendemail.cc
的值。此選項可以多次指定。
- --compose
-
呼叫文字編輯器(參見 git-var[1] 中的 GIT_EDITOR)來編輯補丁系列的前言資訊。
當使用
--compose
時,git send-email 將使用訊息中指定的 From、To、Cc、Bcc、Subject、Reply-To 和 In-Reply-To 頭部。如果訊息正文(在頭部和空行之後輸入的內容)只包含空行(或以 Git: 開頭的行),摘要將不會發送,但上述提到的頭部將仍然使用,除非它們被移除。如果 From 或 In-Reply-To 頭部缺失,將提示使用者輸入。
有關
sendemail.multiEdit
,請參閱 CONFIGURATION(配置)部分。 - --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
的郵件)顯示為對給定 Message-ID 的回覆,這可以避免打斷會話以提供新的補丁系列。第二封及後續郵件將根據--
[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
-
Microsoft Outlook SMTP 伺服器會丟棄透過電子郵件傳送的 Message-ID 並分配一個新的隨機 Message-ID,從而破壞會話。
使用
--outlook-id-fix
時,git send-email 會使用針對 Outlook 伺服器的特定機制來獲取伺服器分配的 Message-ID,以修復會話。僅當您知道伺服器以與 Outlook 伺服器相同的方式報告重寫的 Message-ID 時才使用此選項。如果未指定此選項,在與 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
選項。如有必要,該命令將在 shell 中執行。預設值為sendemail.sendmailCmd
的值。如果未指定,並且如果也未指定 --smtp-server,則 git-send-email 將在/usr/sbin
、/usr/lib
和 $PATH 中搜索sendmail
。 - --smtp-encryption=<encryption>
-
指定 SMTP 連線加密開始的方式。有效值為 ssl 和 tls。任何其他值將恢復為普通(未加密)SMTP,預設埠為 25。儘管名稱不同,但這兩個值都將使用相同的新版本 TLS,但由於歷史原因而保留這些名稱。ssl 指的是“隱式”加密(有時稱為 SMTPS),預設使用埠 465。tls 指的是“顯式”加密(通常稱為 STARTTLS),預設使用埠 25。SMTP 伺服器可能會使用其他非預設埠。tls 和未加密的常用替代埠是 587。您需要檢查您的提供商文件或伺服器配置以確保您自己的情況。預設值為
sendemail.smtpEncryption
的值。 - --smtp-domain=<FQDN>
-
指定在 HELO/EHLO 命令中傳送給 SMTP 伺服器的完全限定域名 (FQDN)。有些伺服器要求 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 獲取密碼。 - --no-smtp-auth
-
停用 SMTP 身份驗證。是
--smtp-auth=none
的簡寫形式。 - --smtp-server=<host>
-
如果設定,指定要使用的傳出 SMTP 伺服器(例如
smtp.example.com
或原始 IP 地址)。如果未指定,並且如果--sendmail-cmd
也未指定,則預設是在/usr/sbin
、/usr/lib
和 $PATH 中搜索sendmail
(如果此類程式可用),否則回退到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
-
SMTP SSL/TLS 證書驗證可信 CA 證書儲存的路徑(可以是已由 c_rehash 處理的目錄,也可以是包含一個或多個 PEM 格式證書的單個檔案:有關詳細資訊,請參閱 verify(1) -CAfile 和 -CApath)。將其設定為空字串以停用證書驗證。預設為
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 將在傳送 $
條訊息後斷開連線,等待幾秒鐘(參見 --relogin-delay)然後重新連線,以繞過此類限制。您可能希望使用某種憑據助手來避免每次發生這種情況時都必須重新輸入密碼。預設值為 sendemail.smtpBatchSize
配置變數的值。 - --relogin-delay=<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
-
停用任何正在使用的頭部命令。
- --[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)。
-
bodycc(正文抄送)將避免包含補丁正文(提交訊息)Cc 行中提到的任何人,除了自己(為此使用 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
配置的值;如果未指定,則在指定 --suppress-from 時預設為 self,以及在指定 --no-signed-off-cc 時預設為 body。 -
- --[no-]suppress-from
-
如果設定此項,則不要將 From: 地址新增到 cc: 列表。預設值為
sendemail.suppressFrom
配置的值;如果未指定,則預設為 --no-suppress-from。 - --[no-]thread
-
如果設定此項,則 In-Reply-To 和 References 頭部將新增到每封傳送的電子郵件中。每封郵件是引用上一封電子郵件(根據 git format-patch 的說法是
deep
執行緒)還是引用第一封電子郵件(shallow
執行緒)由 "--[no-]chain-reply-to" 控制。如果使用 "--no-thread" 停用,則不會新增這些頭部(除非透過 --in-reply-to 指定)。預設值為
sendemail.thread
配置的值;如果未指定,則預設為 --thread。使用者有責任確保在要求 git send-email 新增 In-Reply-To 頭部時,該頭部不存在(特別注意 git format-patch 可以配置為自行進行執行緒化)。未能這樣做可能不會在收件人的 MUA 中產生預期的結果。
- --[no-]mailmap
-
使用 mailmap 檔案(參見 gitmailmap[5])將所有地址對映到其規範的真實姓名和電子郵件地址。可以使用
sendemail.mailmap.file
或sendemail.mailmap.blob
配置值提供特定於 git-send-email 的額外 mailmap 資料。預設為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);這是由於 https://www.ietf.org/rfc/rfc5322.txt 中描述的 SMTP 限制。
預設值為
sendemail.validate
的值;如果未設定,則預設為--validate
。 -
- --force
-
即使安全檢查會阻止,也傳送電子郵件。
配置
本節中以下所有內容均從 git-config[1] 文件中選擇性地包含。內容與彼處相同:
- sendemail.identity
-
配置身份。如果給出此項,則 sendemail.<identity> 子節中的值將優先於 sendemail 節中的值。預設身份是
sendemail.identity
的值。 - sendemail.smtpEncryption
-
有關描述,請參見 git-send-email[1]。請注意,此設定不受 identity 機制的影響。
- sendemail.smtpSSLCertPath
-
ca-certificates 的路徑(可以是目錄或單個檔案)。將其設定為空字串以停用證書驗證。
- sendemail.<identity>.*
-
下面找到的 sendemail.* 引數的身份特定版本,當透過命令列或
sendemail.identity
選擇此身份時,這些引數將優先。 - sendemail.multiEdit
-
如果為 true(預設),將啟動單個編輯器例項來編輯您需要編輯的檔案(使用
--annotate
時的補丁,以及使用--compose
時的摘要)。如果為 false,檔案將一個接一個地編輯,每次都會啟動一個新的編輯器。 - sendemail.confirm
-
設定傳送前是否確認的預設值。必須是 always、never、cc、compose 或 auto 之一。有關這些值的含義,請參見 git-send-email[1] 文件中的
--confirm
。 - sendemail.mailmap
-
如果為 true,則使 git-send-email[1] 假定
--mailmap
,否則假定--no-mailmap
。預設為 false。 - sendemail.mailmap.file
-
一個 git-send-email[1] 特定的補充 mailmap 檔案的位置。預設 mailmap 和
mailmap.file
會首先載入。因此,此檔案中的條目優先於預設 mailmap 位置中的條目。參見 gitmailmap[5]。 - sendemail.mailmap.blob
-
類似於
sendemail.mailmap.file
,但將值視為倉庫中 blob 的引用。sendemail.mailmap.file
中的條目優先於此處的條目。參見 gitmailmap[5]。 - sendemail.aliasesFile
-
為了避免輸入冗長的電子郵件地址,請將其指向一個或多個電子郵件別名檔案。您還必須提供
sendemail.aliasFileType
。 - sendemail.aliasFileType
-
sendemail.aliasesFile 中指定的檔案格式。必須是 mutt、mailrc、pine、elm、gnus 或 sendmail 之一。
每種格式的別名檔案是什麼樣子,可以在同名電子郵件程式的文件中找到。與標準格式的區別和限制如下所述
- sendemail.annotate
- sendemail.bcc
- sendemail.cc
- sendemail.ccCmd
- sendemail.chainReplyTo
- sendemail.envelopeSender
- sendemail.from
- sendemail.headerCmd
- sendemail.signedOffByCc
- sendemail.smtpPass
- sendemail.suppressCc
- sendemail.suppressFrom
- sendemail.to
- sendemail.toCmd
- sendemail.smtpDomain
- sendemail.smtpServer
- sendemail.smtpServerPort
- sendemail.smtpServerOption
- sendemail.smtpUser
- sendemail.thread
- sendemail.transferEncoding
- sendemail.validate
- sendemail.xmailer
-
所有這些配置變數都為 git-send-email[1] 命令列選項提供了預設值。有關詳細資訊,請參見其文件。
- sendemail.signedOffCc (已棄用)
-
sendemail.signedOffByCc
的已棄用別名。 - sendemail.smtpBatchSize
-
每個連線要傳送的訊息數量,之後將重新登入。如果值為 0 或未定義,則在一個連線中傳送所有訊息。另請參見 git-send-email[1] 的
--batch-size
選項。 - sendemail.smtpReloginDelay
-
重新連線到 smtp 伺服器前等待的秒數。另請參見 git-send-email[1] 的
--relogin-delay
選項。 - sendemail.forbidSendmailVariables
-
為了避免常見的配置錯誤,如果存在任何 "sendmail" 的配置選項,git-send-email[1] 將發出警告並中止。設定此變數以繞過檢查。
SMTP 伺服器示例
使用 Gmail 作為 SMTP 伺服器
要使用 git
send-email
透過 Gmail SMTP 伺服器傳送您的補丁,請編輯 ~/.gitconfig
以指定您的賬戶設定
[sendemail] smtpEncryption = tls smtpServer = smtp.gmail.com smtpUser = yourname@gmail.com smtpServerPort = 587
如果您的 Gmail 賬戶設定了多重身份驗證,您可以生成一個應用專用密碼供 git send-email 使用。訪問 https://security.google.com/settings/security/apppasswords 建立它。
您還可以將 OAuth2.0 身份驗證與 Gmail 一起使用。OAUTHBEARER
和 XOAUTH2
是此類身份驗證常用的方法。Gmail 支援這兩種方法。例如,如果您想使用 OAUTHBEARER
,請編輯您的 ~/.gitconfig
檔案並將 smtpAuth
=
OAUTHBEARER
新增到您的賬戶設定中。
[sendemail] smtpEncryption = tls smtpServer = smtp.gmail.com smtpUser = yourname@gmail.com smtpServerPort = 587 smtpAuth = OAUTHBEARER
使用 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 令牌生成器可在網上獲取。針對 Gmail 和 Outlook 的社群維護的憑據助手也可用:
-
git-credential-gmail (跨平臺,專門用於驗證 Gmail 賬戶的助手)
-
git-credential-outlook (跨平臺,專門用於驗證 Microsoft Outlook 賬戶的助手)
您還可以檢視 gitcredentials[7] 以獲取更多基於 OAuth 的身份驗證助手。
注意:您的 Perl 發行版可能附帶安裝以下核心 Perl 模組是必需的:MIME::Base64、MIME::QuotedPrint、Net::Domain 和 Net::SMTP。還需要以下附加 Perl 模組:Authen::SASL 和 Mail::Address。
另請參閱
git-format-patch[1], git-imap-send[1], mbox(5)