【问题标题】:What does -CHEAD mean in git commit?-CHEAD 在 git commit 中是什么意思?
【发布时间】:2021-05-25 09:28:48
【问题描述】:

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

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

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

【问题讨论】:

    标签: git github git-commit


    【解决方案1】:

    来自docs for git commit

    -C <commit>
    --reuse-message=<commit>
    获取现有的提交对象,并在创建提交时重用日志消息和作者信息(包括时间戳)。

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

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

    --no-edit的文档:

    在不启动编辑器的情况下使用选定的提交消息。例如,git commit --amend --no-edit 修改提交而不更改其提交消息。

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

    【讨论】:

      【解决方案2】:

      -CHEAD(我通常将其拼写为-C HEAD)在这里是不必要的,但它的含义很简单。正如the git commit documentation 所说,-C 选项是--reuse-message 的缩写:

      -C <commit>
      --reuse-message=<commit>
      获取现有的提交对象,并在创建提交时重用日志消息和作者信息(包括时间戳)。

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

      -c <commit>
      --reedit-message=<commit>
      -C 类似,但使用-c 会调用编辑器,以便用户可以进一步编辑提交消息。

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

      名称HEAD,全部大写,如the gitrevisions documentation中所述工作:

      HEAD 命名您在工作树中所做更改所基于的提交

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

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

      【讨论】:

        猜你喜欢
        • 2021-04-30
        • 2017-12-21
        • 1970-01-01
        • 1970-01-01
        • 2011-05-01
        • 2013-02-08
        • 2012-03-03
        • 1970-01-01
        相关资源
        最近更新 更多