git push

时间:2017-02-22 11:24:44

标签: git githooks

我目前有一个用作git服务器的VPS。

此VPS受端口敲门保护,这意味着我必须先将一些数据包发送到特定端口才能连接到22端口(用于SSH)​​。

我认为我可以设置一个git pre-push 挂钩,它会触发端口敲门,以便git可以连接到服务器并推送。

不幸的是,这个钩子不起作用。我是这样做的:

vim .git/hooks/pre-push

echo "Foo"
[my port knocking command which works perfectly fine]
echo "Bar"

chmod +x .git/hooks/pre-push

运行 git push 时,不显示 Foo Bar 。没有任何事情发生。

我想git会在 运行 pre-push 挂钩之前尝试连接到远程服务器

如何在任何操作之前运行我的端口敲门命令

如果有人能帮我解决这个问题,我会很高兴:)

1 个答案:

答案 0 :(得分:3)

{4}}在git知道它将推送什么之后执行,因此在与远程控制器通信之后执行。

您可以设置git config core.sshCommand 'knock && ssh'以达到您想要的效果。有关其工作原理,请参阅git hook pre-pushgit config core.sshCommand

的文档