除了没有暂存文件进行提交的情况之外,还有其他原因导致git commit
命令以非零退出的情况吗?我没有显示任何错误,我只是在编写这样的脚本:
#!/usr/bin/env bash
git commit -m "foo" || {
echo "could not create new commit, no big deal"
}
## keep going with muh script
基本上,我想知道是否有退出代码或检查以防万一阻止提交的问题严重到足以停止我的脚本的情况。
答案 0 :(得分:2)
当索引具有未合并的文件时,除了the case Tim Biegeleisen mentioned in a comment-git commit
之外,git commit
在许多其他情况下也会失败:
预提交挂钩退出非零值,从而中止提交。 (用户可以使用--no-verify
跳过预提交钩子,但是您的脚本不使用--no-verify
。)
发生其他错误的情况,例如,由于某种原因,整个文件系统变为只读状态(例如,Linux在某些硬件故障时会将文件系统冻结为只读状态)。
提交实际上成功了,但是提交后钩子退出了非零值:如果存在提交后钩子,则其退出状态变为git commit
的退出状态。 (这可以说是Git中的一个错误,因为文档声称提交后的钩子不会影响git commit
的结果。结果在这里是否仅表示生成的提交? ,还是应该包含命令的退出状态?)