Git cherry-picking在同一个分支上从一个位置提交到另一个位置

时间:2015-08-13 04:34:17

标签: git deployment branch cherry-pick

我遇到了一个充满挑战的情况。我正在开发的项目有两个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吗?如果我这样做,我会遇到合并冲突吗?

我认为有几个问题,但我希望得到一些关于这种整体方法的反馈。

0 个答案:

没有答案