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