我有一个带有预提交钩子的 git repo,它在 100% 的时间里故意失败。
cat .git/hooks/pre-commit
> exit 1
如果我尝试通过命令行提交,它会按预期失败。但是,如果我从 egit 提交,则挂钩将被忽略并提交更改。
egit/jgit 还不能识别钩子吗?有解决方法吗?
提前致谢!
(原始答案:2011 年 6 月)
MatrixFrog正确指出了错误 299315,其中提到尚不支持这些钩子。
您还可以探索 JGit 存储库,现在位于 GitHub 上,它没有显示任何关于钩子的提交. 您可以在EGit 用户指南
中搜索“hook” :也没有提到 hook 的概念。
2015 年 3 月更新(4 年后):正如MariuszS在评论中指出的那样,“钩子”存在于 JGit 中。
2015 年,支持这些钩子的工作正在进行中:
这些应该在即将到来的 JGit 3.7 中
2015 年第四季度更新,EGit 4.x 确实支持钩子,如this answer中所述。
我的解决方法:
运行: git commit -a ...
如果可以,从工作目录中的命令行执行钩子,并且所有其他 eGit 功能将正常工作。