0

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

master
develop
hotfix
feature

我使用本地仓库在本地机器上开发。我有两个要推送的远程裸仓库。一个是 TEST 服务器,第二个是 LIVE 生产服务器。这两个远程仓库都有一个接收后挂钩。

master 分支应该只保留给最终的生产代码。那么,我应该将哪个分支推送到 TEST 服务器?目前我必须将开发合并到主控,然后将本地主控推送到测试。但是,如果我在那次推送之后有任何编辑,那主人已经改变了,还没有真正准备好投入生产。我应该将开发分支推到测试服务器吗?然后,最终批准合并开发到主服务器,然后将主服务器推送到 LIVE 服务器?

我不明白为什么我对此感到如此困惑?我想我害怕犯任何错误。

4

2 回答 2

0

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

事实上,如果你有提交钩子来触发持续集成构建和测试,那么你需要所有当前正在测试的分支都在那里。

于 2012-12-11T21:11:24.603 回答
0

我有一个类似的架构:master、hotfix 和 development。

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

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

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

请注意,我从不将masterdevelop合并。只是功能被合并。

我不知道这是否是最好的方法,但我总能知道每个功能/问题的哪些代码发生了变化。

于 2012-12-11T21:48:26.937 回答