我正在编写一个预提交脚本来查找添加到索引中的二进制文件。
在研究它时,我意识到如果我添加一个单独的二进制文件,然后执行提交,脚本将取消它(使索引为空)但提交将继续(除非我做了一些事情来阻止它)
这是预期的行为吗?
我想知道的是为什么“git commit”默认情况下,如果index为空,则禁止进行,但是在钩子脚本中,提交将完成。
为了记录,我有一个解决方法,以避免在index为空的情况下提交。
我希望有人可以解释提交的原因。
答案 0 :(得分:1)
--allow-empty
标志,Git 允许空提交。
所以,这里发生的是git启动提交并检查“是否为空”(这需要添加--allow-empty
)并且它不是空的。所以git运行你的钩子,它清空了提交,但是你已经通过了“非空”测试,这个测试没有重复 - 在这种情况下,由钩子退出非零值。