?
This document uses PHP Chinese website manual Release
git-am - 從郵箱應(yīng)用一系列修補程序
git am [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8] [--[no-]3way] [--interactive] [--committer-date-is-author-date] [--ignore-date] [--ignore-space-change | --ignore-whitespace] [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>] [--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet] [--[no-]scissors] [-S[<keyid>]] [--patch-format=<format>] [(<mbox> | <Maildir>)…]git am (--continue | --skip | --abort)
將郵箱中的郵件拆分為提交日志消息、作者信息和補丁,并將其應(yīng)用到當(dāng)前分支。
(<mbox>|<Maildir>)…
要從中讀取補丁的郵箱文件列表。如果您不提供此參數(shù),則該命令會從標(biāo)準(zhǔn)輸入中讀取。如果你提供目錄,他們將被視為郵件。
-s --signoff
使用自己的提交者標(biāo)識向提交消息添加Signed-off-by:
一行。有關(guān)更多信息,請參閱 git-commit [1]中的 signoff 選項。
-k --keep
將-k
標(biāo)志傳遞給git mailinfo
(參見 git-mailinfo [1])。
--keep-non-patch
將-b
標(biāo)志傳遞給git mailinfo
(參見 git-mailinfo [1])。
--no-keep-cr
用--keep-cr
,使用相同的選項調(diào)用git mailsplit
(請參閱 git-mailsplit [1]),以防止它在行尾剝離 CR。am.keepcr
配置變量可以用來指定默認行為。--no-keep-cr
對覆蓋am.keepcr
很有用。
-c --scissors
在剪刀線前刪除所有內(nèi)容(參見 git-mailinfo [1])??梢允褂?code>mailinfo.scissors配置變量默認激活。
--no-scissors
忽略剪刀線(參見 git-mailinfo [1])。
-m --message-id
將-m
標(biāo)志傳遞給git mailinfo
(參見 git-mailinfo [1]),以便
Message-ID 頭文件被添加到提交消息中。am.messageid
配置變量可以用來指定默認的行為。
--no-message-id
不要將 Message-ID 頭文件添加到提交消息中。no-message-id
對覆蓋am.messageid
很有用。
-q --quiet
保持安靜。只打印錯誤消息。
-u --utf8
將-u
標(biāo)志傳遞給git mailinfo
(參見 git-mailinfo [1])。建議的從電子郵件中提交的提交日志消息被重新編碼為 UTF-8編碼(i18n.commitencoding
如果不是 UTF-8,配置變量可用于指定項目的首選編碼)。
這在以前版本的 git 中是可選的,但現(xiàn)在它是默認的。您可以使用--no-utf8
來覆蓋此。
--no-utf8
將-n
標(biāo)志傳遞給git mailinfo
(參見 git-mailinfo [1])。
-3 --3way --no-3way
如果修補程序不能干凈地應(yīng)用,如果修補程序記錄它應(yīng)該應(yīng)用于的斑點的標(biāo)識,則會退回到3路合并,并且我們在本地提供這些斑點。--no-3way
可以用來覆蓋 am.threeWay 配置變量。有關(guān)更多信息,請參閱g it-config [1]中的 am.threeWay。
--ignore-space-change --ignore-whitespace --whitespace=<option> -C<n> -p<n> --directory=<dir> --exclude=<path> --include=<path> --reject
這些標(biāo)志被傳遞給git apply
應(yīng)用該補丁的(參見
git-apply [1])程序。
--patch-format
默認情況下,該命令將嘗試自動檢測補丁格式。此選項允許用戶繞過自動檢測并指定補丁應(yīng)被解釋為的補丁格式。有效的格式是 mbox,mboxrd,stgit,stgit-series 和 hg。
-i --interactive
以交互方式運行。
--committer-date-is-author-date
默認情況下,命令將來自電子郵件的日期記錄為落實作者日期,并使用提交創(chuàng)建時間作為提交者日期。這允許用戶通過使用與作者日期相同的值來說謊提交者日期。
--ignore-date
默認情況下,命令將來自電子郵件的日期記錄為落實作者日期,并使用提交創(chuàng)建時間作為提交者日期。這允許用戶通過使用與提交者日期相同的值來說謊作者日期。
--skip
跳過當(dāng)前的補丁。這僅在重新啟動中止的修補程序時才有意義。
-S<keyid> --gpg-sign=<keyid>
GPG標(biāo)志的提交。keyid
參數(shù)是可選的,并且默認為提交者身份; 如果指定,它必須粘貼到選項沒有空格。
--continue -r --resolved
修補程序失敗后(例如嘗試應(yīng)用沖突修補程序),用戶已手動應(yīng)用它,并且索引文件存儲應(yīng)用程序的結(jié)果。使用作者身份并提交從電子郵件和當(dāng)前索引文件提取的日志進行提交,然后繼續(xù)。
--resolvemsg=<msg>
發(fā)生修補程序失敗時,<msg>將在退出之前打印到屏幕上。這將覆蓋標(biāo)準(zhǔn)消息,通知您使用--continue
或--skip
處理失敗。這僅適用于git rebase
和git am
之間的內(nèi)部使用。
--abort
恢復(fù)原始分支并中止修補操作。
提交作者姓名取自郵件的“From:”行,并且提交作者日期取自郵件的“Date:”行。在剝離普通前綴“PATCH <任何東西>”之后,“主題:”行用作提交的標(biāo)題?!癝ubject:”這一行應(yīng)該簡潔地描述一行文本中提交的內(nèi)容。
“From:”和“Subject:”開始主體的行會覆蓋從頭文件獲取的各個提交作者名稱和標(biāo)題值。
提交消息由從“Subject:”取得的標(biāo)題,空白行和消息的正文形成,直到補丁開始。每行末尾的多余空格將自動刪除。
預(yù)計補丁將直接跟隨消息內(nèi)聯(lián)。任何形式的行:
三破折號和行尾,或者
以“diff - ”開頭的行,或者
以“Index:”開頭的行作為補丁的開始,并且提交日志消息在第一次出現(xiàn)此行之前終止。初次調(diào)用時git am
,您將其指定要處理的郵箱名稱。在看到不適用的第一個補丁后,它會在中間中止。您可以通過以下兩種方法之一從中恢復(fù):
通過使用該--skip
選項重新運行該命令,跳過當(dāng)前的修補程序。
手動解決工作目錄中的沖突,并更新索引文件,使其進入補丁應(yīng)該產(chǎn)生的狀態(tài)。然后使用該--continue
選項運行該命令。
在當(dāng)前操作完成之前,命令拒絕處理新郵箱,因此如果您決定從頭開始,請git am --abort
在運行帶有郵箱名稱的命令之前運行。
在應(yīng)用任何補丁之前,ORIG_HEAD 被設(shè)置為當(dāng)前分支的頂端。如果您在多次提交時遇到問題,比如git am
在錯誤的分支上運行,或者通過更改郵箱(例如,“發(fā)件人:”行中的錯誤)更容易修復(fù)提交中的錯誤,則這很有用。
這個命令可以運行applypatch-msg
,pre-applypatch
以及post-applypatch
掛鉤。有關(guān)更多信息,請參閱 githooks [5]。