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

Git远程存储库工作流与本地开发和主分支?,git,repository,workflow,branching-strategy,Git,Repository,Workflow,Branching Strategy,我正在努力学习和开发git的最佳实践。关于分支,我一直在阅读git流分支实践。基于这种做法,我的分支机构应该 master develop hotfix feature 我使用本地回购在本地机器上开发。我有两个远程裸回购,我将推动。一个是测试服务器,另一个是实时生产服务器。这两个远程repo都有一个post-receive钩子 主分支应该只为最终生产代码保留。那么,我应该将哪个分支推送到测试服务器?目前,我必须将开发过程合并到主程序中,然后将本地主程序推送到测试中。但是,如果我有任何编辑后,推

我正在努力学习和开发git的最佳实践。关于分支,我一直在阅读git流分支实践。基于这种做法,我的分支机构应该

master
develop
hotfix
feature
我使用本地回购在本地机器上开发。我有两个远程裸回购,我将推动。一个是测试服务器,另一个是实时生产服务器。这两个远程repo都有一个post-receive钩子

主分支应该只为最终生产代码保留。那么,我应该将哪个分支推送到测试服务器?目前,我必须将开发过程合并到主程序中,然后将本地主程序推送到测试中。但是,如果我有任何编辑后,推,主已经改变,并没有真正准备好生产。我应该把开发分支推到测试服务器上吗?然后,在最终批准后,合并开发到主服务器,然后将主服务器推送到实时服务器


我不知道为什么我会被这搞糊涂?我想我害怕犯任何错误。

其实很简单,把测试服务器上需要的任何东西都推到测试服务器上。若你们的代码还并没有准备好合并到master中,那个么干脆不要合并它,只需推动你们的开发分支和或你们的主题分支。这并没有坏处,事实上,在裸存储库上有许多分支是正常的


事实上,如果您在那里有提交钩子,可以启动持续集成构建和测试,那么您需要当前正在测试的所有分支。

我有一个类似的体系结构:master、hotfix和developer

假设您有一个新功能要开发。我的步骤是:

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

git checkout -b issue1234
<make some updates...>
git commit -a -m 'mensagem'
git push origin issue1234
人们会做一些测试,编辑它,然后决定它是否可以部署

git checkout master
git merge issue1234
git push
请注意,我从不将masterdevelop合并。仅合并功能


我不知道这是否是最好的方法,但我总能知道针对每个功能/问题更改了哪些代码。

远程设备如何知道哪个分支应该处于活动状态?您似乎认为只有一个分支处于活动状态,但通常情况并非如此(尤其是对于测试而言)通常情况下,您的CI软件(TeamCity、Jenkins、Cruisecontrol等等)在您测试的所有分支上都有构建项目。通过这种方式,你可以在长时间运行的主题分支以及发布分支上进行持续集成。是的,我对这个游戏非常陌生。目前,虽然我只是一个单一的开发人员在这个网站上工作。这是一个相当大的场地,从头开始建造。我使用git来帮助我处理多个开发轨道。CI软件对一个单独的开发人员是有益的还是有其他的解决方案?好的。我明白你所描述的过程。我不明白的是如何从浏览器查看推送到远程开发分支的新更改。我使用远程服务器托管我正在开发的站点的副本。这是我将更改提交给客户批准的地方。如果没有更改,我可以将分支合并到主分支,然后推送到我的实时服务器。如果有更改,我可以进行更改并将其推回到遥控器。
git checkout master
git merge issue1234
git push