JGit预接收挂钩

时间:2015-07-10 07:16:57

标签: git jgit

使用JGit时,请执行推送到同一服务器上的远程。

1)如果遥控器配置了file:///path/to/git/remote,则预接收挂钩不会被执行。

2)如果遥控器配置了ssh://,则会执行预接收挂钩。

如果使用Git命令行进行相同的推送,将始终执行预接收挂钩。

我不明白为什么会这样。

2 个答案:

答案 0 :(得分:1)

JGit并不支持所有钩子;当您通过ssh:推送时,远程服务器的git实现正在执行git hook支持。当您使用JGit推送到本地存储库时,它只是更新存储库的本地内容。 (我甚至不确定推送到本地git客户端的本地存储库是否会执行pre-receive,因为它没有运行git upload-pack因此没有执行接收。

答案 1 :(得分:0)

jGit支持PreReceiveHooks,但是您需要实现此钩子-不会从钩子目录中读取它。

https://download.eclipse.org/jgit/site/5.0.1.201806211838-r/apidocs/org/eclipse/jgit/transport/PreReceiveHook.html