2

我是 git 新手,想知道这种分支方法是否适合我们打算做的事情。

我们将拥有三个站点

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

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

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

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

这个可以吗?任何建议都将受到高度赞赏。

太感谢了。

4

1 回答 1

0

它可以工作,前提是您的主要单一仓库是您可以推送的裸仓库。

从那里,接收后挂钩可以触发相关的结帐,具体取决于已推送的分支(请参阅“编写 git 接收后挂钩以处理特定分支”)

#!/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。

这不是最佳实践:您应该将您需要的内容合并dev本地分支,然后将这些分支推送到唯一的远程仓库master。 定期 rebase也是一个好主意。sandbox
devmaster

于 2013-04-17T11:15:07.233 回答