我有一个服务器端 Hook (更新后),它将在我执行的每次代码推送后运行。即使没有要推送的新更改,是否有任何方法(或者可能是另一个钩子(Hook)?)运行它?
例子:
$ git push origin master
remote: Hook running....
$
$ git push origin master
Everything up-to-date
$
我希望它再次运行。这可能吗?
最佳答案
创建一个pre-receive
钩子(Hook),让它exit 1
,并从客户端git push origin master HEAD:non-existing-branch
。这将触发 pre-receive
Hook ,即使 master
没有任何变化。
为避免错误消息,请使pre-receive
Hook 成功退出(exit 0
),并手动删除non-existing-branch
来自 post-receive
钩子(Hook)。但是,这会创建一个小时间窗口(当文件 non-existing-branch
存在时),并且从另一个客户端启动的 git push ...
不会运行 Hook .
关于Git 在没有更新时运行服务器端 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13401244/