【问题标题】:Git hooks not firing OR clearing things up with git hooksGit 挂钩未触发或使用 git 挂钩清除内容
【发布时间】:2015-08-28 09:21:27
【问题描述】:

我已经阅读了很多关于使用 git hooks 的文章,但并没有完全理解。我的设置如下:我正在为我的公司开发一个项目。我在我的 Mac 上为 Web 应用程序编写代码,然后将其推送到 bitbucket 上的存储库。在公司的本地网络中,有一台虚拟机运行着一台服务器。现在我远程登录到这个虚拟机并执行git pull 命令,如果我已经将一段新代码推送到了repo。我想使用 git hooks 配置一个推送部署方案,所以基本上每当我将一些新代码推送到 repo 时,VM 应该自动拉取它(你知道,就像某些服务允许你一样,例如 Laravel Forge)。

在虚拟机中有一个存储库的目录,比如C:\project(是的,它正在运行 Windows,*sigh*)。我尝试使用一些“hello-world”代码将post-receive 挂钩放入C:\project\.git\hooks 目录,例如

#!/bin/sh
ECHO "HELLO"
pause

但在我从我的开发环境中git push 之后,它并没有触发。我感觉好像我在这里做的事情完全错了,但找不到任何解决方案。提前致谢。

编辑

好的,把事情说清楚,我想要实现的目标:

  1. 我在我的 mac 上写了一些代码,然后我 push 到 bitbucket 上的私人仓库;
  2. 我公司本地网络中的 VM 已克隆此存储库;
  3. 发现bitbucket有一些变化;
  4. 使用 git-hooks,它从 bitbucket 向pull 运行一些代码,例如:

列表项

#!/bin/sh
cd ../.. # cd back to project directory
git pull
npm install
bower install
...
  1. 如果情况需要,我什至准备安排 git fetch 任务,但没有任何挂钩。

【问题讨论】:

  • 文件应该在C:\project\.git\hooks,但也许那是你说的......
  • @joran,是的,我的意思是,我已经把它放进了钩子里,ofc。已编辑原帖,谢谢。

标签: git hook bitbucket githooks


【解决方案1】:

您应该在 VM 服务器上使用合并后挂钩,因为您在那里执行 git pull。 post-receive 在您执行 git push 的服务器上触发。

将合并后挂钩移动到您推送的远程仓库。

编辑:

如果您从 B 上的回购中拉取 A,则会触发 A 上的合并后。如果您从 A 推送到 B 上的仓库,则会触发 B 上的 post-receive。

这可能不是一个选项,但使用 Bitbucket Webhook,您可以在项目中发生推送事件时通知 REST 服务,请参阅 https://confluence.atlassian.com/bitbucket/event-payloads-740262817.html#EventPayloads-Push

有很多替代方法可以构建响应推送事件的 Rest-service(一种替代方法可能是使用 Phyton 脚本和 GitPhyton,但还有很多其他替代方法)

【讨论】:

  • 周一之前我无法使用 VM 对其进行测试,但我将我在 mac 上的项目克隆到另一个目录中,并添加了一个 post-merge 测试挂钩,但无论如何它都不会触发如果我从原始目录推送。此外,我不明白,这个钩子应该以某种方式告知为了触发而发生了一些变化的事实。这部分是怎么发生的?
  • 我什至在第二个克隆目录中尝试了git fetch,以便 git 得到通知,自上次 pull 以来发生了一些变化,但仍然没有任何反应..
  • @AntonEgorov, post-merge 由发起命令的一侧的git pull 触发。如果您从 B 上的回购中对 A 进行拉动,则会触发 A 上的 post-merge。如果您从 A 推送到 B 上的仓库,则会触发 B 上的 post-receive
  • 我明白了,是的。这个逻辑很合理,是的。我想要实现的是一种类似于 Laravel Forge 的行为,我从 A 推送到 B,C 不知何故知道 B 的变化并拉取 repo。
猜你喜欢
  • 1970-01-01
  • 2021-06-29
  • 2015-08-31
  • 2017-07-12
  • 2015-09-10
  • 2014-04-06
  • 1970-01-01
  • 1970-01-01
  • 2018-06-29
相关资源
最近更新 更多