如何为多个站点进行分支方法?

时间:2013-04-17 09:36:11

标签: git repository-pattern

我是git的新手,想知道这种分支方法是否适合我们的目标。

我们将有三个网站

  • prod.websitename.com - 直播网站
  • sandbox.websitename.com - 可供我们客户使用的测试网站
  • dev.websitename.com - 在推送到实际网站之前开发和测试修补程序/功能的内部网站

我们打算做的是拥有一个可以为所有三个站点提供服务的集中式存储库。存储库将有三个分支:master,sandbox和development

然后我们只是检查分支以更改文件并拉/推每个站点的更改。

对于更改,开发将推送到master和sandbox分支。沙箱永远不会被推到掌握。

这可以吗?任何建议都非常感谢。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

如果您的主要单个仓库是bare repo,您可以推送它。

从那里开始,post-receive hook可以触发相关的结账,具体取决于已推送的分支(参见“Writing a git post-receive hook to deal with a specific branch”)

#!/bin/bash
while read oldrev newrev refname
do
    branch=$(git rev-parse --symbolic --abbrev-ref $refname)
    if [ "master" == "$branch" ]; then
        # Do something
    fi
    if [ "sandbox" == "$branch" ]; then
        # Do something
    fi
    if [ "development" == "$branch" ]; then
        # Do something
    fi
done
  

对于更改,开发将推送到master和sandbox分支。沙箱永远不会被推到掌握。

这不是最佳做法:您应该将所需内容从dev合并到mastersandbox 本地分支,然后推送这些分支到独特的远程仓库 定期在dev之上重新定位master也是一个好主意。