?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
git-send-email - 以電子郵件的形式發(fā)送一組補(bǔ)丁
git send-email [options] <file|directory|rev-list options>… git send-email --dump-aliases
接受命令行上給出的補(bǔ)丁并將其發(fā)送出去。修補(bǔ)程序可以指定為文件,目錄(這將發(fā)送目錄中的所有文件),或直接作為修訂列表。在最后一種情況下,git-format-patch [1]接受的任何格式都可以傳遞給 git send-email。
電子郵件的標(biāo)題可通過(guò)命令行選項(xiàng)進(jìn)行配置。如果未在命令行中指定,則系統(tǒng)將提示用戶使用啟用了 ReadLine 的接口來(lái)提供必要的信息。
接受補(bǔ)丁文件有兩種格式:
mbox 格式文件這是 git-format-patch [1]生成的內(nèi)容。大多數(shù)標(biāo)題和 MIME 格式都會(huì)被忽略。
Greg Kroah-Hartman send_lots_of_email.pl
腳本使用的原始格式此格式預(yù)期文件的第一行包含消息的“Cc:”值和“Subject:”作為第二行。
--annotate
查看并編輯您即將發(fā)送的每個(gè)補(bǔ)丁。默認(rèn)值是sendemail.annotate
。請(qǐng)參閱 CONFIGURATION 部分sendemail.multiEdit
。
--bcc=<address>,…
為每封電子郵件指定一個(gè)“密件抄送:”值。默認(rèn)值是sendemail.bcc
。
此選項(xiàng)可能會(huì)多次指定。
--cc=<address>,…
為每封電子郵件指定一個(gè)開(kāi)始的“抄送:”值。默認(rèn)值是sendemail.cc
。
此選項(xiàng)可能會(huì)多次指定。
--compose
調(diào)用文本編輯器(請(qǐng)參閱 git-var [1]中的 GIT_EDITOR)以編輯補(bǔ)丁系列的介紹性消息。
何時(shí)--compose
使用,git send-email 將使用消息中指定的 From,Subject 和 In-Reply-To頭。如果郵件正文(在標(biāo)題和空白行之后鍵入的內(nèi)容)僅包含空白(或 Git:前綴)行,則不會(huì)發(fā)送摘要,但發(fā)件人,主題和收件人回復(fù)標(biāo)題將除非被移除,否則應(yīng)該使用。
缺少 From 或 In-Reply-To 頭將被提示輸入。
請(qǐng)參閱 CONFIGURATION 部分sendemail.multiEdit
。
--from=<address>
指定電子郵件的發(fā)件人。如果未在命令行中指定,sendemail.from
則使用配置選項(xiàng)的值。如果沒(méi)有設(shè)置命令行選項(xiàng)sendemail.from
,則會(huì)提示用戶輸入值。提示的缺省值將是 GIT_AUTHOR_IDENT 或 GIT_COMMITTER_IDENT 的值,如果未設(shè)置,則返回“git var -l”。
--in-reply-to=<identifier>
使第一封郵件(或所有郵件--no-thread
)顯示為對(duì)給定 Message-Id 的回復(fù),從而避免中斷線程以提供新的補(bǔ)丁系列。根據(jù)設(shè)置,第二封和隨后的電子郵件將作為回復(fù)發(fā)送--[no-]chain-reply-to
。
因此,例如,當(dāng)--thread
與--no-chain-reply-to
被指定,第二和后續(xù)的補(bǔ)丁將是回復(fù)到第一個(gè)像在下面,其中插圖[PATCH v2 0/3]
是答復(fù)[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 也被設(shè)置時(shí)才有必要。如果--compose 未設(shè)置,則會(huì)提示輸入。
--subject=<string>
指定電子郵件線索的初始主題。只有在--compose 也被設(shè)置時(shí)才有必要。如果--compose 未設(shè)置,則會(huì)提示輸入。
--to=<address>,…
指定生成的電子郵件的主要收件人。一般來(lái)說(shuō),這將是所涉及項(xiàng)目的上游維護(hù)者。默認(rèn)值是sendemail.to
配置值的值; 如果未指定,并且未指定--to-cmd,則會(huì)提示此處。
該選項(xiàng)可能會(huì)多次指定。
--8bit-encoding=<encoding>
遇到非 ASCII 消息或未聲明其編碼的主題時(shí),請(qǐng)?zhí)砑訕?biāo)題/引用以指示它在<編碼>中編碼。默認(rèn)值是該值sendemail.assume8bitEncoding
; 如果未指定,則會(huì)提示是否遇到任何非ASCII文件。
請(qǐng)注意,沒(méi)有任何嘗試驗(yàn)證編碼。
--compose-encoding=<encoding>
指定撰寫(xiě)郵件的編碼。默認(rèn)值是該值sendemail.composeencoding
; 如果沒(méi)有指定,則假定為 UTF-8。
--transfer-encoding=(7bit|8bit|quoted-printable|base64)
指定用于通過(guò) SMTP 發(fā)送消息的傳輸編碼。遇到非 ASCII 消息時(shí),7bit將失敗。當(dāng)存儲(chǔ)庫(kù)包含包含回車(chē)符的文件時(shí),quoted-printable 可能很有用,但會(huì)使原始修補(bǔ)程序電子郵件文件(如從 MUA 保存的文件)難以手動(dòng)檢查。base64 更加笨手笨腳,但也更加不透明。默認(rèn)值是sendemail.transferEncoding
配置值的值; 如果沒(méi)有指定,git 將使用8位而不添加 Content-Transfer-Encoding 標(biāo)頭。
--xmailer --no-xmailer
添加(或阻止添加)“X-Mailer:”標(biāo)題。默認(rèn)情況下,添加標(biāo)題,但可以通過(guò)設(shè)置sendemail.xmailer
配置變量來(lái)關(guān)閉標(biāo)題false
。
--envelope-sender=<address>
指定用于發(fā)送電子郵件的信封發(fā)件人。如果您的默認(rèn)地址不是訂閱列表的地址,這很有用。為了使用From
地址,請(qǐng)將該值設(shè)置為“auto”。如果使用 sendmail 二進(jìn)制文件,則必須具有-f參數(shù)的適當(dāng)權(quán)限。默認(rèn)值是sendemail.envelopeSender
配置變量的值; 如果沒(méi)有指定,選擇信封發(fā)件人留給您的 MTA。
--smtp-encryption=<encryption>
指定要使用的加密,ssl
或者tls
。任何其他值都會(huì)恢復(fù)為普通 SMTP。默認(rèn)值是sendemail.smtpEncryption
。
--smtp-domain=<FQDN>
指定在 SMTP 服務(wù)器的 HELO / EHLO 命令中使用的完全限定的域名(FQDN)。一些服務(wù)器需要 FQDN 來(lái)匹配您的 IP 地址。如果未設(shè)置,git send-email會(huì)自動(dòng)嘗試確定您的 FQDN。默認(rèn)值是sendemail.smtpDomain
。
--smtp-auth=<mechanisms>
空白分隔的允許的 SMTP-AUTH 機(jī)制列表。該設(shè)置強(qiáng)制只使用列出的機(jī)制。例:
$ git send-email --smtp-auth="PLAIN LOGIN GSSAPI" ...
如果至少有一個(gè)指定的機(jī)制與 SMTP 服務(wù)器通告的機(jī)制匹配,并且所用的 SASL 庫(kù)支持該機(jī)制,則使用該機(jī)制進(jìn)行身份驗(yàn)證。如果既沒(méi)有sendemail.smtpAuth
也沒(méi)有--smtp-auth
指定,可以使用 SASL 庫(kù)支持的所有機(jī)制。
--smtp-pass=<password>
SMTP-AUTH 的密碼。該參數(shù)是可選的:如果未指定參數(shù),則將使用空字符串作為密碼。默認(rèn)值是值sendemail.smtpPass
,但--smtp-pass
總是覆蓋此值。
此外,密碼不需要在配置文件或命令行中指定。如果指定了用戶名(帶有--smtp-user
或sendemail.smtpUser
),但沒(méi)有指定密碼(帶有--smtp-pass
或sendemail.smtpPass
),則使用密碼獲取git-credential
。
--smtp-server=<host>
如果設(shè)置,則指定要使用的傳出 SMTP 服務(wù)器(例如,smtp.example.com
或原始IP地址)?;蛘撸梢灾付?lèi)似 sendmail 的程序的完整路徑名; 該計(jì)劃必須支持該-i
選項(xiàng)。默認(rèn)值可以由sendemail.smtpServer
配置選項(xiàng)指定; 內(nèi)置的默認(rèn)是/usr/sbin/sendmail
或者/usr/lib/sendmail
如果這樣的程序是可用的,localhost
否則。
--smtp-server-port=<port>
指定一個(gè)與默認(rèn)端口不同的端口(SMTP 服務(wù)器通常監(jiān)聽(tīng) smtp 端口25,但也可以偵聽(tīng)提交端口587或公共 SSL smtp 端口465); 符號(hào)端口名稱(例如“提交”而不是 587)也被接受。該端口也可以通過(guò)sendemail.smtpServerPort
配置變量進(jìn)行設(shè)置。
--smtp-server-option=<option>
如果設(shè)置,則指定要使用的傳出 SMTP 服務(wù)器選項(xiàng)。默認(rèn)值可以由sendemail.smtpServerOption
配置選項(xiàng)指定。
對(duì)于要傳遞給服務(wù)器的每個(gè)選項(xiàng),必須重復(fù)--smtp-server-option 選項(xiàng)。同樣,每個(gè)選項(xiàng)都必須使用配置文件中的不同行。
--smtp-ssl
舊版別名--smtp-encryption ssl
。
--smtp-ssl-cert-path
用于 SMTP SSL / TLS 證書(shū)驗(yàn)證的可信 CA 證書(shū)存儲(chǔ)區(qū)的路徑(可以是經(jīng)過(guò)處理的目錄,也可以是c_rehash
包含一個(gè)或多個(gè)連接在一起的PEM格式證書(shū)的單個(gè)文件:請(qǐng)參閱 verify(1)-CAfile 和 -CApath for 關(guān)于這些的更多信息)。將其設(shè)置為空字符串以禁用證書(shū)驗(yàn)證。默認(rèn)為sendemail.smtpsslcertpath
配置變量的值(如果設(shè)置),否則默認(rèn)情況下支持 SSL 庫(kù)的編譯默認(rèn)值(這應(yīng)該是大多數(shù)平臺(tái)上的最佳選擇)。
--smtp-user=<user>
SMTP-AUTH 的用戶名。默認(rèn)值是sendemail.smtpUser
; 的值。如果沒(méi)有指定用戶名(使用--smtp-user
或sendemail.smtpUser
),則不會(huì)嘗試進(jìn)行身份驗(yàn)證。
--smtp-debug=0|1
啟用(1)或禁用(0)調(diào)試輸出。如果啟用,將打印 SMTP 命令和回復(fù)。用于調(diào)試 TLS 連接和身份驗(yàn)證問(wèn)題。
--batch-size=<num>
一些電子郵件服務(wù)器(例如 smtp.163.com)會(huì)限制每個(gè)會(huì)話(連接)發(fā)送的電子郵件數(shù)量,這會(huì)在發(fā)送多條消息時(shí)導(dǎo)致失敗。使用此選項(xiàng),send-email 將在發(fā)送$ <num>消息并等待幾秒鐘(請(qǐng)參閱--relogin-delay)并重新連接后斷開(kāi)連接,以解決此限制。您可能需要使用某種形式的憑證幫助程序,以避免每次發(fā)生這種情況時(shí)都必須重新輸入密碼。缺省為sendemail.smtpBatchSize
配置變量。
--relogin-delay=<int>
在重新連接到 SMTP 服務(wù)器之前等待$ <int>秒。與--batch-size 選項(xiàng)一起使用。缺省為sendemail.smtpReloginDelay
配置變量。
--to-cmd=<command>
指定一個(gè)命令為每個(gè)補(bǔ)丁文件執(zhí)行一次,該文件應(yīng)生成特定于補(bǔ)丁文件的“To:”條目。此命令的輸出必須是每行一個(gè)電子郵件地址。默認(rèn)值是sendemail.tocmd
配置值的值。
--cc-cmd=<command>
指定一個(gè)命令為每個(gè)補(bǔ)丁文件執(zhí)行一次,該文件應(yīng)生成補(bǔ)丁文件特定的“Cc:”條目。此命令的輸出必須是每行一個(gè)電子郵件地址。默認(rèn)值是sendemail.ccCmd
配置值的值。
--no-chain-reply-to
如果已設(shè)置,每封電子郵件將作為對(duì)以前發(fā)送的電子郵件的回復(fù)發(fā)送。如果使用“--no-chain-reply-to”禁用,則首先發(fā)送的所有電子郵件將作為回復(fù)發(fā)送給第一封電子郵件。當(dāng)使用這個(gè)時(shí),建議給出的第一個(gè)文件是整個(gè)補(bǔ)丁系列的概述。默認(rèn)情況下禁用,但sendemail.chainReplyTo
可以使用配置變量啟用它。
--identity=<identity>
配置標(biāo)識(shí)。給出時(shí),導(dǎo)致sendemail.<identity>
子sendemail
部分中的值優(yōu)先于部分中的值。默認(rèn)標(biāo)識(shí)是的值sendemail.identity
。
--no-signed-off-by-cc
如果已設(shè)置,請(qǐng)將添加到 Signed-off-by 或 Cc:行中的電子郵件添加到cc列表。默認(rèn)值是sendemail.signedoffbycc
配置值的值; 如果沒(méi)有指定,默認(rèn)為 --signed-off-by-cc。
--no-cc-cover
如果已設(shè)置,則在該系列的第一個(gè)補(bǔ)?。ㄍǔ榍舐毿牛┲械腃c:標(biāo)題中找到的電子郵件將添加到每個(gè)電子郵件集的cc列表中。默認(rèn)值是sendemail.cccover
配置值的值; 如果未指定,則默認(rèn)為--no-cc-cover。
--no-to-cover
如果已設(shè)置,則在系列的第一個(gè)補(bǔ)丁(通常為求職信)中的“收件人:”標(biāo)題中找到的電子郵件將添加到每個(gè)電子郵件集的列表中。默認(rèn)值是sendemail.tocover
配置值的值; 如果未指定,則默認(rèn)為 - 不覆蓋。
--suppress-cc=<category>
指定一個(gè)額外的收件人類(lèi)別以禁止以下的自動(dòng)抄送:
author
將避免包括修補(bǔ)程序作者
self
將避免包括發(fā)件人
cc
將避免在修補(bǔ)程序頭文件中包含Cc行中提到的任何人,除了self(self
用于此目的)。
bodycc
將避免包括在補(bǔ)丁體(提交消息)中的Cc行中提到的任何人,除了self(self
用于此)外。
sob
將避免包括在自簽名外的任何人(除此之外self
)。
cccmd
將避免運(yùn)行--cc-cmd。
body
相當(dāng)于sob
+bodycc
all
將抑制所有自動(dòng)cc值。
默認(rèn)值是sendemail.suppresscc
配置值的值; 如果沒(méi)有指定,則默認(rèn)為 - self
如果指定了--suppress-from,并且指定了body
--no-signed-off-cc。
--no-suppress-from
如果已設(shè)置,請(qǐng)不要將發(fā)件人:地址添加到cc:列表。默認(rèn)值是sendemail.suppressFrom
配置值的值; 如果未指定,則默認(rèn)為--no-suppress-from。
--no-thread
如果設(shè)置了此項(xiàng),則會(huì)將 In-Reply-To 和 References 標(biāo)題添加到發(fā)送的每封電子郵件中。每個(gè)郵件是指以前的電子郵件(deep
每個(gè)git format-patch
字詞的線程)還是第一封電子郵件(shallow
線程)都由“--no-chain-reply-to”來(lái)管理。
如果使用“--no-thread”禁用,則不會(huì)添加這些標(biāo)頭(除非用--in-reply-to指定)。默認(rèn)值是sendemail.thread
配置值的值; 如果未指定,則默認(rèn)為--thread。
用戶需要確保在git send-email
被要求添加 In-Reply-To 頭時(shí)已經(jīng)存在(特別是git format-patch
可以配置為自己執(zhí)行線程)。如果不這樣做,可能無(wú)法在收件人的MUA中產(chǎn)生預(yù)期結(jié)果。
--confirm=<mode>
在發(fā)送之前確認(rèn):
always
在發(fā)送之前會(huì)一直確認(rèn)
never
發(fā)送前絕不會(huì)確認(rèn)
cc
將在發(fā)送之前確認(rèn)發(fā)送電子郵件已自動(dòng)將補(bǔ)丁中的地址添加到Cc列表
compose
將在使用--compose時(shí)發(fā)送第一條消息之前進(jìn)行確認(rèn)。
auto
相當(dāng)于cc
+compose
默認(rèn)值是sendemail.confirm
配置值的值; 如果未指定,則默認(rèn)為auto
除非指定了任何禁止選項(xiàng),在這種情況下,默認(rèn)值為compose
。
--dry-run
除了實(shí)際發(fā)送電子郵件之外,別做任何事
--no-format-patch
當(dāng)參數(shù)可以理解為參考或文件名時(shí),選擇將其理解為format-patch參數(shù)(--format-patch
)或文件名(--no-format-patch
)。默認(rèn)情況下,當(dāng)發(fā)生這種沖突時(shí),git send-email 將會(huì)失敗。
--quiet
讓 git-send-email 不那么冗長(zhǎng)。每封電子郵件一行應(yīng)該是輸出的全部?jī)?nèi)容。
--no-validate
對(duì)補(bǔ)丁執(zhí)行完整性檢查。目前,驗(yàn)證意味著以下內(nèi)容:
調(diào)用 sendemail-validate 掛鉤(如果存在)(請(qǐng)參閱 githooks [5])。
警告包含超過(guò)998個(gè)字符的行; 這是由于 http://www.ietf.org/rfc/rfc2821.txt中描述的 SMTP 限制。
默認(rèn)值是sendemail.validate
; 的值。如果未設(shè)置,則默認(rèn)為--validate
。
--force
發(fā)送電子郵件即使安全檢查會(huì)阻止它。
--dump-aliases
代替正常操作,從配置的別名文件中轉(zhuǎn)儲(chǔ)簡(jiǎn)寫(xiě)別名,每行按字母順序排列一個(gè)。請(qǐng)注意,這只包含別名,不包括其擴(kuò)展的電子郵件地址。查看sendemail.aliasesfile
關(guān)于別名的更多信息。
sendemail.aliasesFile
為避免輸入長(zhǎng)電子郵件地址,請(qǐng)將其指向一個(gè)或多個(gè)電子郵件別名文件。你還必須提供sendemail.aliasFileType
。
sendemail.aliasFileType
在 sendemail.aliasesFile 中指定的文件格式。必須是一mutt
,mailrc
,pine
,elm
其中之一,或gnus
,或sendmail
。
在同一個(gè)名字的電子郵件程序的文檔中可以找到每種格式的別名文件。標(biāo)準(zhǔn)格式的差異和局限性如下所述:
發(fā)送郵件 ( sendmail )
引用的別名和引用地址不受支持:包含"
符號(hào)的行將被忽略。
不支持重定向到文件(/path/name
)或管道(|command
)。
文件包含(:include: /path/name
)不受支持。
對(duì)于任何顯式不支持的構(gòu)造以及解析器無(wú)法識(shí)別的其他行,將在標(biāo)準(zhǔn)錯(cuò)誤輸出上顯示警告。
sendemail.multiEdit
如果為 true(默認(rèn)),則會(huì)生成單個(gè)編輯器實(shí)例以編輯您必須編輯的文件(使用補(bǔ)丁時(shí)--annotate
,使用摘要時(shí)--compose
)。如果為 false,則文件將依次編輯,每次產(chǎn)生一個(gè)新的編輯器。
sendemail.confirm
設(shè)置發(fā)送前是否確認(rèn)的默認(rèn)值。必須是always
,never
,cc
,compose
,或auto
其中之一。請(qǐng)參閱--confirm
上一節(jié)中這些值的含義。
要git send-email
通過(guò) GMail SMTP 服務(wù)器發(fā)送補(bǔ)丁,請(qǐng)編輯?/ .gitconfig 指定您的帳戶設(shè)置:
[sendemail] smtpEncryption = tls smtpServer = smtp.gmail.com smtpUser = yourname@gmail.com smtpServerPort = 587
如果您的 gmail 帳戶有多因素身份驗(yàn)證設(shè)置,則需要生成特定于應(yīng)用程序的密碼以供使用git send-email
。訪問(wèn) https://security.google.com/settings/security/apppasswords 以設(shè)置應(yīng)用專(zhuān)用密碼。安裝完成后,您可以使用憑據(jù)助手來(lái)存儲(chǔ)它:
$ git credential fill protocol=smtp host=smtp.gmail.com username=youname@gmail.com password=app-password
一旦您的提交已準(zhǔn)備好發(fā)送到郵件列表,請(qǐng)運(yùn)行以下命令:
$ git format-patch --cover-letter -M origin/master -o outgoing/$ edit outgoing/0000-*$ git send-email outgoing/*
注意:需要以下 perl 模塊 Net :: SMTP :: SSL,MIME :: Base64 和 Authen :: SASL