问题
I have a git repo with a pre-commit hook that intentionally fails 100% of the time.
cat .git/hooks/pre-commit
> exit 1
If I try to commit through the command line, it fails as expected. However, if I commit from egit, the hook is ignored and the changes get committed.
Does egit/jgit not recognize hooks yet? Is there a workaround for this?
Thanks in advance!
回答1:
(Original answer: June 2011)
MatrixFrog correctly points out to the bug 299315, which mentions those hooks aren't supported yet.
You also can explore the JGit repository, now on GitHub, which doesn't show any commit about hooks.
And you can search for 'hook' in the EGit User Guide: the notion of hook isn't mentioned either.
Update March 2015 (4 years later): as MariuszS points out in the comments, "hook" is present in JGit.
In 2015, there are works in progress to support those hooks:
- "Introduce hook support into the FS implementations"
- "Support for the pre-commit hook" (so not yet pre-receive hook)
Those should be in the upcoming JGit 3.7
Update Q4 2015, EGit 4.x does support hooks, as mentioned in this answer.
回答2:
My workaround:
run: git commit -a ...
from the command line in your working directory if you can, the hook gets executed and all other eGit functionality will work as normal.
来源:https://stackoverflow.com/questions/6232026/egit-hooks-do-not-get-triggered