如何在远程机器(而不是本地)上使用Git post-receive hook?

时间:2013-01-24 07:45:33

标签: git git-post-receive git-bare

我们正在使用Windows开发服务器来托管我的Git裸仓库。我们使用对服务器的直接文件访问(没有SSH,GIT或HTTP)。这非常好,团队很开心。

我们现在正试图让开发服务器在每次有人在裸仓库中推送代码时执行部署操作。我们在服务器上创建了一个本地仓库,并将裸仓库添加为远程仓库。

我们发现在post-receive hook中使用本地路径根本不起作用。后接收挂钩似乎搜索客户端系统上的文件夹而不是服务器本身。当我们在服务器上使用// server / c $ / [path]时(以及服务器本地repo的远程设置),一切似乎都有效 - 但速度很慢。它现在开始让我们疯了,所以我们现在停止使用它:(。

简而言之,我们的问题是:

  1. post-receive是否具有客户端本地范围?
  2. 如果1为真:是否可以在服务器范围内进行后接收?
  3. 有没有人成功使用过如上所述的机制?
  4. 非常感谢你的帮助!

2 个答案:

答案 0 :(得分:0)

将你的钩子放在服务器的.git / hook而不是你的本地并进行检查

此外,部署系统必须处理每个案例重置,标记。

这是一个部署脚本(它不涉及每个案例,但你可以接受并改进它)

https://gist.github.com/4621684

答案 1 :(得分:0)

事实证明,在使用文件路径进行部署时,范围仍然是客户端范围。这似乎是设计的,因此,我不得不寻找另一种出版选择。

我现在使用WebGitNet(github.com/otac0n/WebGitNet)进行推送,这使我能够通过http发布并执行此操作,它也可以在服务器的范围内运行。目前,我也在使用相同的机制,但我没有 - 为了速度我还可以选择文件系统访问来拉动......