使用JGit时,请执行推送到同一服务器上的远程。
1)如果遥控器配置了file://
或/path/to/git/remote
,则预接收挂钩不会被执行。
2)如果遥控器配置了ssh://
,则会执行预接收挂钩。
如果使用Git命令行进行相同的推送,将始终执行预接收挂钩。
我不明白为什么会这样。
答案 0 :(得分:1)
JGit并不支持所有钩子;当您通过ssh:
推送时,远程服务器的git实现正在执行git hook支持。当您使用JGit推送到本地存储库时,它只是更新存储库的本地内容。 (我甚至不确定推送到本地git
客户端的本地存储库是否会执行pre-receive
,因为它没有运行git upload-pack
因此没有执行接收。
答案 1 :(得分:0)
jGit支持PreReceiveHooks,但是您需要实现此钩子-不会从钩子目录中读取它。