我们使用长寿分支PROD,TEST和DEV。合并时排除恢复提交
下一个应用程序版本是在DEV中开发的,当它准备好测试时在TEST中合并,并在发布后合并到PROD中。
一些提交是直接在TEST分支(用于错误更正测试版本)和PROD(用于维护错误)中进行的。
PROD和TEST中的这些提交总是“合并到”子分支(即:在TEST和DEV中合并的PROD;在DEV中合并的TEST)。
有一段时间,错误更正在PROD中提交,然后在TEST和DEV中合并,然后推送到原点。但是,计划中有一些变化,错误更正应该是TEST版本的一部分,而不是PROD中的版本。
现在问题是:如果我在PROD中恢复提交,则在PROD合并后,还将在TEST和DEV中完成还原。如何在PROD合并后继续删除PROD中的更改并将其保留在TEST和DEV中?
我目前做的是,从TEST:
git merge PROD --no-commit
这允许合并处于测试提交之前我从PROD放弃恢复的变化。然后做一个从TEST到DEV的合并,不需要特别的干预。 如果从PROD合并的唯一提交是已还原的提交,则会导致没有文件的合并...但这似乎仍然有效。
所以我想知道我的方法是正确的还是有更好的方法来做到这一点?
对不起,但我不明白你的建议,将TEST合并到PROD中......这是相反的方法,我想保持TEST与PROD最新,直到TEST准备好发布(仅当时TEST在PROD中合并)。 –
看着你提到的博客文章,我不知道我得到了关于不将合并分支(父)合并到功能分支(子)中的完整理由。 在我们的情况下,从哲学的角度来看,我们可以说每个子分支的目的是“添加功能xxx(到最新版本的父分支)”,而不是“添加功能xxx(到版本分支从)“。 我们不介意不能将TEST合并到PROD的较旧代码库(例如:PROD中的TEST的最后合并),因为我们只有一个生产版本的应用程序,而不是任何客户特定版本。 –
从技术角度来看,我认为将父母合并为孩子比挑选樱桃更好......因为一旦孩子分支合并回父母身上,我的快速尝试与樱桃挑选导致许多冲突。 –