我们有一个标准的网络项目,并维护这个项目的3个核心分支:主,测试版和开发。以下是我们使用的流程/工作流程的摘要:
(1)请求一个新特性/更新,因此我们创建一个新特性分支。
(2)提交新的特性分支,并将特性分支合并到“开发”分支中;然后将“开发”分支发布到测试环境中进行测试。
(3)一旦新特性被测试/批准,就会在同一特性分支中发出一个新的拉取请求;这个新的拉取请求将被合并到'Beta‘分支中。
“测试版”分支具有我们所有的“准备就绪”功能:实际上,我们将“测试版”分支直接发布到生产环境中,当准备就绪时,我们立即将“测试版”分支合并到“主”branch....by。
问题:在上面的步骤3中,当我们尝试将新的功能分支合并到'Beta‘分支中时,pull请求包括所有已经合并到'Develop’分支中的新提交。
示例:5个功能分支分别合并到“开发”分支(分支标记为1、2、3、4和5)。所有5个都测试过了,但是前4个有but。所以分支"5“被批准了,我们尝试为那个特性分支创建一个拉请求,并将它合并到”Beta“中……但是当我们这样做的时候,拉请求包含了所有5个特性branches....not只是分支"5”的提交。
我们一定是做错了什么!我们可以做些什么来修复我们的流程/工作流程?
发布于 2017-02-27 07:10:32
(3)一旦测试/批准了新特性,就会在相同的特性分支中生成一个新的拉取请求;这个新的拉取请求将被合并到“测试版”分支中。
“测试版”分支具有我们所有的“准备就绪”功能:实际上,我们将“测试版”分支直接发布到生产环境中,当准备就绪时,我们立即将“测试版”分支合并到“主”branch....by。
问题:在上面的步骤3中,当我们尝试将新的功能分支合并到'Beta‘分支中时,pull请求包括所有已经合并到'Develop’分支中的新提交。
不,这说不通。如果发生这种情况,您就忽略了一些重要信息,例如:
时代的所有开发历史
在每一种情况下,你的工作流程都会从根本上被破坏,无法根据你的测试版分支的想法来工作。因此,如果你想避免挑剔(坏!坏的!糟糕!)你如何才能实现你想要做的事情?有一些基本选项:
发布于 2016-11-15 01:38:20
这就是git的工作方式。您需要为每个功能创建单独的分支。
发布于 2016-11-15 02:02:41
一旦您将一个分支与另一个分支合并,合并分支提交就会在分支上提交。
您可能想要做的甚至不是在开发分支 for development上工作,而是为每个特性(当然,序列化特性)进行分支,然后在将许多特性分支的包合并到开发分支之前,分别检查这些特性是否有bug。
为了消除进入开发分支的bug,您将需要使代码在功能分支上工作,然后通过使用git revert恢复功能分支,然后再次合并分支(有效地仅恢复它引入到开发分支中的提交)来合并或恢复更改。
在行业中,恢复开发分支(或层次结构中任何较大的分支)通常是不明智的,除非您只合并一个功能……因为不同的提交可以在它们之间建立依赖关系,而恢复可能会造成比它解决的更多的危害。
要获得更好的恢复挂起,请阅读this guide by atlassian或available documentation。
https://stackoverflow.com/questions/40594376
复制相似问题