现在有一个生产和一个预发环境,通过合并staging分支的代码到master分支来进行更新
但是出于方便回滚的目的,要一点一点代码进行合并测试
我应该如何精确让我提交的代码能够被合并,而不附带上别人的代码呢?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| 1.提交已有的代码到staging
这个前缀是zsh的功能,不用管 git:(staging) sudo git commit -m 'add material to prod' git:(staging) sudo git push
并且记录提交代码的摘要,这个摘要可以通过git logs查看 也可以在网页中查看 63cbc67a d16ef0f7
2.切换到master分支并且先同步 git:(staging) sudo git checkout master git:(master) sudo git pull
3.依据master分支创建一条本地分支 git:(master) sudo git checkout -b cherry-pick-63cbc67a
4.检入之前提交的代码 git:(cherry-pick-63cbc67a) sudo git cherry-pick 63cbc67a d16ef0f7
自动合并 xxx [cherry-pick-63cbc67a 1c846d7] add material to prod Date: Wed Feb 26 11:06:16 2025 +0800 1 file changed, 87 insertions(+) 自动合并 xxx [cherry-pick-63cbc67a 736afb7] adjust rbac Date: Wed Feb 26 11:03:43 2025 +0800 2 files changed, 5 insertions(+), 4 deletions(-)
5.(可选)如果有冲突,需要手动解决冲突 git:(cherry-pick-63cbc67a) sudo git add . git:(cherry-pick-63cbc67a) sudo git cherry-pick --continue
6.生成远程临时分支,因为这个分支目前只在本地有,仓库是没有的 git push --set-upstream origin cherry-pick-63cbc67a
7.将临时分支与master分支合并 (不推荐)git:(master) git merge cherry-pick-63cbc67a (推荐)使用网页端,进入临时分支,发起合并请求
|