如果没有对文件进行任何更改,如何制作新的commit
并创建新邮件?
这是不可能的,因为提交的代码(SHA?)将是相同的?
答案 0 :(得分:125)
很少有理由这样做,但空提交的参数为--allow-empty
,而空消息的参数为--allow-empty-message
。您还可以通过输入git help commit
或访问the online documentation来了解更多信息。
虽然树对象(它有自己的散列)将是相同的,但提交实际上会有不同的散列,因为它可能会有不同的时间戳和消息,并且肯定会有不同的父提交。所有这三个因素都集成到git
的对象哈希算法中。
有几个原因可能需要空提交(包含一些注释):
git
命令而不生成任意更改(通过Vaelus)。gitolite
(通过Tatsh)重新创建已删除的裸存储库。将元数据添加到提交树的其他策略包括:
git notes
将可变注释与现有的不可变提交相关联。答案 1 :(得分:28)
如果我理解你,你想做一个空提交。在这种情况下,您需要:
git commit --allow-empty
答案 2 :(得分:17)
使用消息进行空提交
var subDocument = data.subDocument.id(subDocumentId);
if (subDocument) {
// Do some stuff
}
else {
// No subDocument found
}
使用空消息进行空提交
git commit --allow-empty -m "Empty test commit"
答案 3 :(得分:2)
也许作为一个更明智的选择,你可以创建一个annotated tag(带有消息的命名提交)。请参阅git tag -a
选项。
答案 4 :(得分:1)
如果您使用的是像gitversion这样的系统,那么做这种提交很有意义。您可以使用+ semver:major comment来进行专门用于碰撞主要版本的提交。