Git远程存储库工作流与本地开发和主分支?

时间:2012-12-11 20:53:06

标签: git repository workflow branching-strategy

我正在尝试用git学习和开发最佳实践。在分支方面,我一直在阅读git flow分支实践。基于这种做法,我的分支应该是

master
develop
hotfix
feature

我使用本地仓库在本地计算机上开发。我有两个遥控裸露的回购,我会推。一个是TEST服务器,第二个是LIVE生产服务器。这些远程存储库中都有一个后接收挂钩。

主分支应该仅为最终生产代码保留。那么,我哪个分支推送到TEST服务器?目前我必须将开发合并到主服务器,然后将本地主服务器推送到TEST。但是,如果在推送之后我有任何编辑,那么主人已经改变了,并没有真正准备好进行制作。我应该将开发分支推送到TEST服务器吗?然后,在最终批准之后合并开发到主服务器,然后将主服务器推送到LIVE服务器?

我不知道为什么我对此感到困惑?我想我害怕犯错误。

2 个答案:

答案 0 :(得分:0)

实际上非常简单,将测试服务器上需要的任何内容推送到测试服务器上。如果您的代码还没有准备好合并到master中,那么只是不要合并它,只需推送您的开发分支和/或您的主题分支。没有任何伤害,事实上,在您的裸存储库中拥有许多分支是正常的。

事实上,如果你有提交挂钩,那就是启动持续集成构建和测试,那么你需要你当前正在测试的所有分支都在那里。

答案 1 :(得分:0)

我有一个类似的架构:master,hotfix和develop。

想象一下,您有一个新功能需要开发。我的步骤是什么:

每个新功能都有一个新分支:

git checkout -b issue1234
<make some updates...>
git commit -a -m 'mensagem'
git push origin issue1234

您可以与开发分支合并,只是为了了解它如何与其他开发一起工作并运行测试用例。

git checkout dev
git merge issue1234
git push

人们进行多项测试,编辑并确定它已准备好部署!

git checkout master
git merge issue1234
git push

请注意,我绝不会将开发合并。只是功能合并。

我不知道这是否是最佳方法,但我始终可以知道每个功能/问题的代码都已更改。