我应该如何组织我的Git存储库和分支来创建网站的多个版本?

时间:2011-02-03 22:54:56

标签: git dvcs git-branch git-workflow

我是一名希望转移到Git的SVN用户。我一整天都在阅读文档和教程,但我仍然没有答案。我不知道这个工作流程是否有意义,但这是我的情况,以及我希望从我的工作流程中得到什么:

  • 多个开发人员,都在本地工作站开发
  • 网站的3个版本:Dev,Staging,Production

这是我的梦想:

开发人员在他自己的分支上本地工作,比如说“developer1”,在他的本地机器上进行测试,并提交他的更改。

另一位开发人员可以将这些更改下载到他自己的分支中。合并开发人员1 - > developer2。

当工作准备好被公众看到时,我希望能够“推动”到Dev,Staging或Production。

git push origin staging 

或者

git merge developer1 staging

我不确定。就像我说的那样,我还是Git的新手。

以下是我的主要问题:

  • 我的网站(开发,分期,制作)是否必须是存储库?为了成为新变化的接受者,他们必须“裸露”吗?

  • 我是否需要一个或多个存储库,有多个分支?

  • 这是否有意义,或者我走错了路?

我已经阅读了很多教程,所以我真的希望有人可以帮助我解决我的具体情况。非常感谢!

3 个答案:

答案 0 :(得分:3)

我建议阅读的文章是A Successful Git Branching Model。它解决了您描述的情况以及更多内容。

答案 1 :(得分:0)

记住分布式。与subversion不同,您的开发人员的签出是他们自己的独立存储库,而不仅仅是工作副本。在他们的正常工作流程中,他们会将更改提交到自己的存储库,创建和操作个人分支等。git push可用于将提交从本地分支转移到您的“main”,origin存储库(可能驻留在虚拟主机上)。因此,每个开发人员都会拥有他希望的任何分支机构的本地个人回购;原始存储库将有三个提到的分支。开发人员会不时git pull其他人从原始仓库(进入某些本地分支)和git push他们自己的工作到适当的原始仓库分支。

答案 2 :(得分:0)

正如@Greg建议的那样,遵循nvie成功的Git分支模型是一个好主意。从那里,我建议阅读有关如何使用git进行网站阅读,并尝试用分支模型实现它。

简而言之:

  • 遵循git分支模型到T
  • 设置系统以允许git以第二篇文章建议的方式将发布分支推送到临时服务器
  • 设置git以按照相同的登台服务器设置将主分支推送到生产服务器