Git 在没有更新时运行服务器端 Hook

标签 git

我有一个服务器端 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/

相关文章:

git - fork 别人的 github 项目以将其作为 gem 发布的道德和礼仪是什么?

git - 修复旧提交中添加的错误的最佳方法?

GitHub Pull Request 复杂的冲突

git - 使用 git 在 Android Studio 项目上进行协作

git - 如何在系统中没有安装git的情况下安装golang包?

git - 确定文件中的行何时被修改

git - 如何将我的项目重新连接到我现有的 GitHub 存储库

linux - 在 Linux VM (RHEL) 上安装 Git

git - 如何使用本地ssh key访问第三台电脑?

git - 如何以只读方式与合作者共享私有(private) GitHub 存储库中的一个分支?