我正在尝试用git学习和开发最佳实践。在分支方面,我一直在阅读git flow分支实践。基于这种做法,我的分支应该是
master
develop
hotfix
feature
我使用本地仓库在本地计算机上开发。我有两个遥控裸露的回购,我会推。一个是TEST服务器,第二个是LIVE生产服务器。这些远程存储库中都有一个后接收挂钩。
主分支应该仅为最终生产代码保留。那么,我哪个分支推送到TEST服务器?目前我必须将开发合并到主服务器,然后将本地主服务器推送到TEST。但是,如果在推送之后我有任何编辑,那么主人已经改变了,并没有真正准备好进行制作。我应该将开发分支推送到TEST服务器吗?然后,在最终批准之后合并开发到主服务器,然后将主服务器推送到LIVE服务器?
我不知道为什么我对此感到困惑?我想我害怕犯错误。
答案 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
请注意,我绝不会将主与开发合并。只是功能合并。
我不知道这是否是最佳方法,但我始终可以知道每个功能/问题的代码都已更改。