0

我正在编写一个预提交脚本来查找添加到索引中的二进制文件。

在处理它时,我意识到如果我添加一个二进制文件,然后进行提交,脚本将取消暂存它(将索引留空)但提交将继续(除非我采取措施阻止它)。

这是预期的行为吗?

我想知道的是为什么“git commit”默认禁止在索引为空的情况下继续进行,但是在钩子脚本中会完成提交。

作为记录,我有一个解决方法来避免在索引为空的情况下进行提交。

我希望有人可以解释为什么提交完成。

4

1 回答 1

1

如果您使用该标志, Git确实允许空提交。--allow-empty

所以,这里发生的是 git 开始提交并检查“是空的”(这需要添加--allow-empty)并且它不是空的。所以 git 运行你的钩子,它清空了提交,但是你已经通过了“非空”测试,这个测试不再重复——在这种情况下,由钩子退出非零。

于 2013-11-11T10:13:50.463 回答