【发布时间】:2012-09-10 07:19:16
【问题描述】:
如果没有对文件进行任何更改,我如何创建新的commit 并创建新消息?
这是不可能的,因为提交的代码 (SHA ?) 将是相同的吗?
【问题讨论】:
如果没有对文件进行任何更改,我如何创建新的commit 并创建新消息?
这是不可能的,因为提交的代码 (SHA ?) 将是相同的吗?
【问题讨论】:
很少有这样做的好理由,但参数是 --allow-empty 用于空提交(没有文件更改),而 --allow-empty-message 用于空提交消息。您也可以通过输入git help commit 或访问the online documentation 阅读更多内容。
虽然树对象(有自己的哈希)是相同的,但提交实际上会有不同的哈希,因为它可能有不同的时间戳和消息,并且肯定会有不同的父提交。所有这三个因素都集成到git 的对象哈希算法中。
有您可能需要一个空提交(包含一些 cmets)的几个原因:
git 命令(通过Vaelus)。gitolite(通过Tatsh)重新创建已删除的裸存储库。将元数据添加到提交树的其他策略包括:
git notes 在现有的不可变提交之上关联可变注释。【讨论】:
dev 分支表单master,然后立即从dev 创建一个feat 分支时,feat 分支看起来来自master 分支,因为在dev 上没有区别提交feat 分支来自的分支。首次创建 dev 分支时的空提交有助于建立 dev 分支,因为它是独立于 master 的无限期持久分支。通常,当您使用分支作为层时,它会很有帮助,并从一次提交中创建两个层
commit --amend。通过这种方式,您可以让开发人员看到与上一次提交相关的重要消息。
如果我理解正确,您想进行空提交。在这种情况下,您需要:
git commit --allow-empty
【讨论】:
也许作为更明智的选择,您可以创建一个annotated tag(带有消息的命名提交)。请参阅git tag -a 选项。
【讨论】:
如果你使用像gitversion 这样的系统,那么做这种提交是很有意义的。您可以使用 +semver: 主要注释进行专门用于提升主要版本的提交。
【讨论】:
带有消息的空提交
git commit --allow-empty -m "Empty test commit"
带有空消息的空提交
git commit --allow-empty --allow-empty-message
【讨论】:
allow-empty-message 标志提示提交消息。要跳过该提示,我们可以使用 -m "" 传递空的混乱,例如 git commit --allow-empty --allow-empty-message -m ""