我有一个充当 git 服务器的中央服务器,我从另一台电脑推送我的更改。我也与另一位开发人员并行工作。他在 git 服务器中准备了一个钩子,所以当我们推送它时,它会拉取任何更改。
我们现在想要做的也是从生产服务器中提取。我们使用两个主要分支(master 和 stable),所以当我们决定提交一些稳定的东西时,我们希望生产服务器以任何方式拉取它。我不太确定是否可以按需拉动,但我几乎没有发现关于这方面的信息。你有什么主意吗?提前致谢。
您的问题并不完全清楚,需要有关您的设置的更多详细信息。
如果您想拉入您的生产服务器(或从中央服务器推送到您的生产服务器),并且如果您使用像update
,post-receive
或之类的钩子post-update
,您可以轻松地制作它们,pull
或者push
仅当您提交到稳定分支时。
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 的名称是您想要的( stable )然后对生产服务器执行push
orpull
将帮助您实现所需的选择性更新。
您不能推送到生产服务器,因为 a)默认情况下 git 不会推送到非裸存储库,并且 b)如果您强制它,它只能更新存储库,而不是工作目录。您必须进入生产存储库目录并从那里拉取。您可以使用中央存储库上的接收后挂钩自动执行此操作,并且您应该准备好处理文件所有权问题。