在 GitHub 文档页面上,我看到了以下命令:
$ git commit --amend -CHEAD # Amend the previous commit with your change
我之前使用过git commit --amend
命令,但是我还没有遇到过-CHEAD
参数。在这种情况下,-CHEAD
是什么意思,它与--no-edit
有何不同?
在 GitHub 文档页面上,我看到了以下命令:
$ git commit --amend -CHEAD # Amend the previous commit with your change
我之前使用过git commit --amend
命令,但是我还没有遇到过-CHEAD
参数。在这种情况下,-CHEAD
是什么意思,它与--no-edit
有何不同?
-CHEAD
(一般我会拼作-C HEAD
)在此处是不必要的,但其意义非常简单。正如git commit文档所述,-C
选项是--reuse-message
的缩写:
-C <commit>
--reuse-message=<commit>
使用现有的提交对象,在创建提交时重用日志消息和作者信息(包括时间戳)。
这类似于小写字母-c
选项,但有一个简单的区别:
-c <commit>
--reedit-message=<commit>
像-C
一样,但使用-c
后会调用编辑器,以便用户进一步编辑提交消息。
因此,-C commit
等效于-c commit --no-edit
,或者如果你愿意,交换c
选项的大小写并添加--edit
。
大写字母的HEAD
与gitrevisions文档中所述相同:
HEAD
指定了你在工作树中对变更进行更改的提交
(或者等价于当前检出的提交)。因此,-C HEAD
意味着获取当前提交的提交消息,而无需编辑它。
对于--amend
,--no-edit
表示获取当前提交的提交消息,而不编辑它,--edit
表示获取当前提交的提交消息,但会停止编辑它。因此,这在--amend
中完全等效。对于其他提交选项,-C
、-F
或-m
选项指定了初始提交消息的来源,可以按指定进行编辑或不编辑。
来自于git commit文档:
-C <commit>
--reuse-message=<commit>
使用已经存在的提交(commit)对象,在创建提交(commit)时重用日志信息和作者信息(包括时间戳)。
HEAD
是你当前历史记录中最新的提交(commit)(通常是你当前所在的分支)。
这意味着,你使用与要修改的提交(commit)相同的提交(commit)消息。
--no-edit
文档说明:
不打开编辑器使用选定的提交(commit)消息。例如,
git commit --amend --no-edit
修改一个提交(commit),而不更改其提交(commit)消息。
根据文档,-C
将重用“作者信息(包括时间戳)”,而--no-edit
则不会。