如果没有对文件进行更改,如何创建新的commit并创建新消息?这是不可能的,因为提交的代码(SHA?)将是相同的?
commit
kg7wmglp1#
很少有好的理由这样做,但是空提交(没有文件被修改)的参数是--allow-empty,与空提交消息的参数--allow-empty-message相反,你也可以通过输入git help commit或访问the online documentation来了解更多信息。虽然树对象(它有自己的哈希值)是相同的,但提交实际上有不同的哈希值,因为它可能有不同的时间戳和消息,并且肯定有不同的父提交。所有这三个因素都集成到git的对象哈希算法中。这里有几个原因,你可能需要一个空提交(包含一些注解):
--allow-empty
--allow-empty-message
git help commit
git
gitolite
向提交树添加元数据的其他策略包括:
git notes
nzk0hqpo2#
带有消息的空提交
git commit --allow-empty -m "Empty test commit"
带有空消息的空提交,但系统会要求您键入消息
git commit --allow-empty --allow-empty-message
带有空消息的空提交
git commit --allow-empty --allow-empty-message -m ""
1hdlvixo3#
如果我没理解错的话,你想做一个空提交,在这种情况下你需要:
git commit --allow-empty
hrirmatl4#
如果你使用的是gitversion这样的系统,这样的提交很有意义,你可以使用+semver来提交主版本:主要评论。
dauxcl2d5#
也许作为一个更明智的选择,你可以创建一个annotated tag(一个带消息的命名提交)。
5条答案
按热度按时间kg7wmglp1#
很少有好的理由这样做,但是空提交(没有文件被修改)的参数是
--allow-empty
,与空提交消息的参数--allow-empty-message
相反,你也可以通过输入git help commit
或访问the online documentation来了解更多信息。虽然树对象(它有自己的哈希值)是相同的,但提交实际上有不同的哈希值,因为它可能有不同的时间戳和消息,并且肯定有不同的父提交。所有这三个因素都集成到
git
的对象哈希算法中。这里有几个原因,你可能需要一个空提交(包含一些注解):
git
命令而不生成任意更改(通过Vaelus)。gitolite
(通过Tatsh)重新创建已删除的空存储库。向提交树添加元数据的其他策略包括:
git notes
在现有的不可变提交之上关联一个可变注解。nzk0hqpo2#
带有消息的空提交
带有空消息的空提交,但系统会要求您键入消息
带有空消息的空提交
1hdlvixo3#
如果我没理解错的话,你想做一个空提交,在这种情况下你需要:
hrirmatl4#
如果你使用的是gitversion这样的系统,这样的提交很有意义,你可以使用+semver来提交主版本:主要评论。
dauxcl2d5#
也许作为一个更明智的选择,你可以创建一个annotated tag(一个带消息的命名提交)。