• git-am
    • 名称
    • 概要
    • 描述
    • OPTIONS
    • 讨论
    • 挂钩
    • 也可以看看
    • GIT

    git-am

    原文: https://git-scm.com/docs/git-am

    名称

    git-am - 从邮箱中应用一系列补丁

    概要

    1. git am [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8]
    2. [--[no-]3way] [--interactive] [--committer-date-is-author-date]
    3. [--ignore-date] [--ignore-space-change | --ignore-whitespace]
    4. [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
    5. [--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet]
    6. [--[no-]scissors] [-S[<keyid>]] [--patch-format=<format>]
    7. [(<mbox> | <Maildir>)…​]
    8. git am (--continue | --skip | --abort | --quit | --show-current-patch)

    描述

    将邮箱中的邮件拆分为提交日志消息,作者信息和修补程序,并将其应用于当前分支。

    OPTIONS

    1. (<mbox>|<Maildir>)…​

    要从中读取修补程序的邮箱文件列表。如果您不提供此参数,则该命令将从标准输入读取。如果您提供目录,它们将被视为Maildirs。

    1. -s
    1. --signoff

    使用您自己的提交者标识在提交消息中添加Signed-off-by:行。有关详细信息,请参阅 git-commit [1] 中的签收选项。

    1. -k
    1. --keep

    -k标志传递给 git mailinfo (参见 git-mailinfo [1] )。

    1. --keep-non-patch

    -b标志传递给 git mailinfo (参见 git-mailinfo [1] )。

    1. --[no-]keep-cr

    使用--keep-cr,使用相同选项调用 git mailsplit (参见 git-mailsplit [1] ),以防止它在行末端剥离CR。 am.keepcr配置变量可用于指定默认行为。 --no-keep-cr可用于覆盖am.keepcr

    1. -c
    1. --scissors

    在剪刀线之前移除体内的所有物体(参见 git-mailinfo [1] )。默认情况下可以使用mailinfo.scissors配置变量激活。

    1. --no-scissors

    忽略剪刀线(见 git-mailinfo [1] )。

    1. -m
    1. --message-id

    -m标志传递给 git mailinfo (参见 git-mailinfo [1] ),以便将Message-ID标头添加到提交消息中。 am.messageid配置变量可用于指定默认行为。

    1. --no-message-id

    不要将Message-ID标头添加到提交消息中。 no-message-id用于覆盖am.messageid

    1. -q
    1. --quiet

    安静。仅打印错误消息。

    1. -u
    1. --utf8

    -u标志传递给 git mailinfo (参见 git-mailinfo [1] )。从电子邮件中获取的建议提交日志消息被重新编码为UTF-8编码(配置变量i18n.commitencoding可用于指定项目的首选编码,如果它不是UTF-8)。

    这在git的早期版本中是可选的,但现在它是默认的。您可以使用--no-utf8覆盖它。

    1. --no-utf8

    -n标志传递给 git mailinfo (参见 git-mailinfo [1] )。

    1. -3
    1. --3way
    1. --no-3way

    当补丁不能干净地应用时,如果补丁记录了它应该应用的blob的身份,则回退到三向合并,并且我们在本地可以使用这些blob。 --no-3way可用于覆盖am.threeWay配置变量。有关更多信息,请参阅 git-config [1] 中的am.threeWay。

    1. --ignore-space-change
    1. --ignore-whitespace
    1. --whitespace=<option>
    1. -C<n>
    1. -p<n>
    1. --directory=<dir>
    1. --exclude=<path>
    1. --include=<path>
    1. --reject

    这些标志传递给应用补丁的 git apply (参见 git-apply [1] )程序。

    1. --patch-format

    默认情况下,该命令将尝试自动检测修补程序格式。此选项允许用户绕过自动检测并指定应将补丁解释为的补丁格式。有效格式为mbox,mboxrd,stgit,stgit-series和hg。

    1. -i
    1. --interactive

    以交互方式运行。

    1. --committer-date-is-author-date

    默认情况下,该命令将电子邮件中的日期记录为提交作者日期,并使用提交创建时间作为提交者日期。这允许用户使用与作者日期相同的值来说谎提交者日期。

    1. --ignore-date

    默认情况下,该命令将电子邮件中的日期记录为提交作者日期,并使用提交创建时间作为提交者日期。这允许用户使用与提交者日期相同的值来欺骗作者日期。

    1. --skip

    跳过当前的补丁。这仅在重新启动已中止的修补程序时才有意义。

    1. -S[<keyid>]
    1. --gpg-sign[=<keyid>]

    GPG签名提交。 keyid参数是可选的,默认为提交者标识;如果指定,它必须粘在没有空格的选项上。

    1. --continue
    1. -r
    1. --resolved

    在修补程序失败(例如,尝试应用冲突的修补程序)之后,用户已手动应用它并且索引文件存储应用程序的结果。使用从电子邮件和当前索引文件中提取的作者和提交日志进行提交,然后继续。

    1. --resolvemsg=<msg>

    当发生补丁失败时,< msg>将在退出前打印到屏幕上。这将覆盖标准消息,通知您使用--continue--skip来处理故障。这仅供 git rebasegit am 之间的内部使用。

    1. --abort

    恢复原始分支并中止修补操作。

    1. --quit

    中止修补操作但保持HEAD和索引不变。

    1. --show-current-patch

    显示因“冲突”而停止“git am”时正在应用的补丁。

    讨论

    提交作者姓名取自消息的“发件人:”行,提交作者日期取自消息的“日期:”行。在剥离公共前缀“[PATCH< anything>]”之后,“Subject:”行被用作提交的标题。 “Subject:”行应该在一行文本中简明地描述提交的内容。

    “From:”和“Subject:”行开始正文覆盖从标题中获取的相应提交作者姓名和标题值。

    提交消息由从“主题:”获取的标题,空白行和消息正文直到补丁开始的位置形成。每行末尾的多余空格会自动删除。

    该补丁预计将是内联的,直接跟在消息之后。任何形式的行:

    • 三个破折号和行尾,或

    • 以“diff - ”开头的行,或

    • 一行以“索引:”开头

    被视为补丁的开头,并且在第一次出现这样的行之前终止提交日志消息。

    最初调用git am时,为其指定要处理的邮箱的名称。在看到第一个不适用的补丁时,它会在中间中止。您可以通过以下两种方式之一从中恢复:

    1. 通过使用--skip选项重新运行命令来跳过当前补丁。

    2. 手解决工作目录中的冲突,并更新索引文件,使其进入补丁应生成的状态。然后使用--continue选项运行命令。

    该命令在当前操作完成之前拒绝处理新邮箱,因此如果您决定从头开始,请在运行带有邮箱名称的命令之前运行git am --abort

    在应用任何补丁之前,ORIGHEAD设置为当前分支的尖端。如果您遇到多次提交有问题,例如在错误的分支上运行 _git am ,或者通过更改邮箱更容易修复提交中的错误(例如“From:”行中的错误),这很有用)。

    挂钩

    该命令可以运行applypatch-msgpre-applypatchpost-applypatch挂钩。有关详细信息,请参阅 githooks [5] 。

    也可以看看

    git-apply [1] 。

    GIT

    部分 git [1] 套件