如何(以及在​​何处)定义钩子以将网站自动加载到生产中?

时间:2011-07-04 17:46:11

标签: git githooks

我有一个充当git服务器的中央服务器,我从另一台PC推送我的更改。我也与另一位开发人员并行工作。他在git服务器上准备了一个钩子,所以当我们推动它时会拉动任何变化。

我们现在想要做的是从生产服务器拉出来。我们使用两个主要分支(主要和稳定),所以当我们决定提交稳定的东西时,我们希望生产服务器以任何方式提取它。我不太确定是否可以按需提供,但我发现这方面的信息很少甚至没有。你有什么主意吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

您的问题并不十分明确,需要有关设置的详细信息。

如果要拉入生产服务器(或从中央服务器推送到生产服务器),并且使用updatepost-receivepost-update等挂钩,只有当你提交稳定分支时,才能轻松地使它们pullpush

在中央服务器上采用update挂钩的具体示例,它需要三个参数:

- the name of the ref being updated,
- the old object name stored in the ref,
- and the new objectname to be stored in the ref.

通过检查ref的名称是否是您想要的(稳定),然后对生产服务器执行pushpull将帮助您实现所需的选择性更新。

http://git-scm.com/docs/githooks

答案 1 :(得分:0)

你不能推送到生产服务器,因为a)默认情况下git不会推送到非裸存储库,而b)如果你强制它,它只能更新repo,而不是工作目录。您必须进入生产存储库目录并从那里拉。您可以使用中央存储库上的post-receive挂钩自动执行此操作,您应该准备好处理文件所有权问题。