-CHEAD 在 git 提交中意味着什么?

What does -CHEAD mean in git commit?

GitHub documentation page 上,我看到了以下命令:

$ git commit --amend -CHEAD
# Amend the previous commit with your change

我以前使用过命令 git commit --amend,但我还没有遇到过 -CHEAD 参数。 -CHEAD 在这种情况下是什么意思,它与 --no-edit 有何不同?

来自docs for git commit

-C <commit>
--reuse-message=<commit>
Take an existing commit object, and reuse the log message and the authorship information (including the timestamp) when creating the commit.

HEAD 是您当前历史记录中的最新提交(通常是您当前的分支)。

这意味着,您使用与正在修改的提交相同的提交消息。

--no-edit 的文档:

Use the selected commit message without launching an editor. For example, git commit --amend --no-edit amends a commit without changing its commit message.

根据这些文档,-C 将重复使用“作者信息(包括时间戳)”,而 --no-edit 不会。

-CHEAD(我通常拼写为 -C HEAD)在这里是 不必要的 ,但它的意思很简单。正如 the git commit documentation 所指出的,-C 选项是 --reuse-message:

的缩写

-C <commit>
--reuse-message=<commit>
      Take an existing commit object, and reuse the log message and the authorship information (including the timestamp) when creating the commit.

这类似于 -c(小写)选项,只有一个简单的区别:

-c <commit>
--reedit-message=<commit>
      Like -C, but with -c the editor is invoked, so that the user can further edit the commit message.

所以-C <em>commit</em>等同于-c <em>commit</em> --no-edit,或者,如果您愿意,交换 c 选项的大小写并添加 --edit.

名称 HEAD,全部大写,如 the gitrevisions documentation:

中所述

HEAD names the commit on which you based the changes in the working tree

(或等效地,当前签出的提交)。所以 -C HEAD 意味着从当前提交中获取提交消息,而不对其进行编辑。

--amend--no-edit表示从当前提交中获取提交消息,不进行编辑,而--edit表示从当前提交中获取提交消息,但是停止编辑它。所以这完全等价于 for --amend。对于其他提交选项,-C-F-m 选项指定初始提交消息的来源,可以按指定进行编辑或不编辑。