我遇到了一个充满挑战的情况。我正在开发的项目有两个git分支(master和develop)。我一直在研究开发分支上的一些问题。所有提交都是直接在开发分支上进行的(不同的分支不用于不同的问题)。提交消息可以识别特定问题的提交,因为每个提交消息都以问题ID开头(例如,问题#231的所有提交消息都将以"#231"开头)。
在本地测试后,这些各种问题的更改已部署到所有者的用户验收测试(UAT)服务器。由于项目没有登台/测试分支,因此开发分支已合并为master并进入UAT的master分支。因此,UAT上的主分支包含来自develop分支的所有最新更改。此外,这使得master分支在UAT之前位于生产(PROD)服务器上的Master分支之前。
网站所有者现在已经表示,他希望在解决其余问题之前,将其中一个问题(例如#231)的所有更改分别部署到PROD上。
我的问题是如何最好地实现这一目标?
我想到的方法是根据PROD上的当前主分支在PROD上创建一个新分支(例如git branch master_231
)。然后我可以把它拉到我当地的环境中并挑选#231提交到它。完成此操作后,我可以将对master_231的更改恢复为PROD。希望这可以解决将问题#231更改部署到PROD的问题。
在UAT服务器上引入其他更改方面,我可以登录PROD和checkout master分支(记住我们当前在master_231上)。然后我可以将最新的主变更拉入PROD。这意味着UAT和PROD上的主分支现在匹配。
鉴于master分支已经包含与master_231分支中相同的提交(请记住所有问题#231提交最初都在master上),我还需要在master上将master_231合并到master吗?如果我这样做,我会遇到合并冲突吗?
我认为有几个问题,但我希望得到一些关于这种整体方法的反馈。