English ▾ 主題 ▾ 最新版本 ▾ git-mailinfo 最後更新於 2.43.0

名稱

git-mailinfo - 從單一電子郵件中提取修補程式(patch)與作者資訊

概要

git mailinfo [-k|-b] [-u | --encoding=<encoding> | -n]
	       [--[no-]scissors] [--quoted-cr=<action>]
	       <msg> <patch>

描述

從標準輸入讀取單一電子郵件,將提交記錄訊息寫入 <msg> 檔案,並將修補程式寫入 <patch> 檔案。作者姓名、電子郵件和郵件主旨會寫入標準輸出,供 git am 用於建立提交。通常不需要直接使用此指令。請參閱 git-am[1]

選項

-k

程式通常會從 Subject: 標頭列移除電子郵件的雜訊,以提取提交記錄訊息的標題列。此選項可防止這種處理,最適合在讀取 git format-patch -k 的輸出時使用。

具體來說,以下內容會被移除,直到完全消失:

  • 開頭與結尾的空白字元。

  • 開頭的 Re:re::

  • 開頭的括號字串(位於 [] 之間,通常是 [PATCH])。

最後,連續的空白字元會被正規化為單一的 ASCII 空白字元。

-b

當 -k 未啟用時,所有以 [] 對包圍的開頭字串都會被剝離。此選項限制僅剝離括號內包含 "PATCH" 一詞的字串。

-u

提交記錄訊息、作者姓名和作者電子郵件會從電子郵件中提取,並在進行最基本的 MIME 傳輸編碼解碼後,根據 i18n.commitEncoding(預設為 UTF-8)指定的字元集進行轉寫編碼。這過去是可選的,但現在已是預設行為。

請注意,即使使用了此旗標,修補程式本身始終會按原樣使用,不會進行字元集轉換。

--encoding=<encoding>

與 -u 類似。但在重新編碼時,會使用此處指定的字元集,而非 i18n.commitEncoding 或 UTF-8。

-n

停用所有關於元資料(metadata)的字元集重新編碼。

-m
--message-id

將 Message-ID 標頭複製到提交訊息的末尾。這對於將提交與郵件列表中的討論關聯起來很有用。

--scissors

移除郵件本文中剪刀線(例如 "-- >8 --")之前的所有內容。該線條代表剪刀和穿孔標記,用於要求閱讀者在該線條處剪下訊息。如果該線條出現在修補程式之前的郵件本文中,則使用此選項時,它之前的所有內容(包括剪刀線本身)都將被忽略。

如果您希望在討論串中以對所回應訊息的評論和建議作為開頭,並以提交修補程式作為結尾,並用剪刀線將討論與建議的提交記錄訊息開頭分開,這將非常有用。

可以透過組態選項 mailinfo.scissors 來預設啟用此功能。

--no-scissors

忽略剪刀線。對於覆寫 mailinfo.scissors 設定很有用。

--quoted-cr=<action>

處理使用 base64 或 quoted-printable 編碼傳送,且解碼後的行結尾為 CRLF 而非單純 LF 的電子郵件訊息時的動作。

有效的動作為:

  • nowarn:當發現此類 CRLF 時,Git 不會執行任何動作。

  • warn:如果發現此類 CRLF,Git 會為每則訊息發出警告。

  • strip:Git 會將這些 CRLF 轉換為 LF。

預設動作可透過組態選項 mailinfo.quotedCR 設定。若未設定此組態選項,則會使用 warn

<msg>

從電子郵件中提取的提交記錄訊息,通常不包含來自電子郵件 Subject 的標題列。

<patch>

從電子郵件中提取的修補程式。

組態設定 (CONFIGURATION)

本節中此行以下的內容是從 git-config[1] 文件中選擇性包含的。內容與該處找到的內容相同

mailinfo.scissors

若為 true,則使 git-mailinfo[1](進而使 git-am[1])預設表現得如同在指令列中提供了 --scissors 選項。啟用後,此功能會移除訊息本文中剪刀線(即主要由 ">8"、"8<" 和 "-" 組成)之前的所有內容。

GIT

git[1] 套件的一部分