Gerrit开发分支合入主线分支

1.开发分支合并主线分支遇到的问题

# 1.主线分支:xxx-develop-master
# 2.开发分支:xxx-develop-master-v2

# 3.开发分支,2025/06/02日从主线分支创建,进行特性组任务开发
# 4.同时,主线分支,也会有相关功能开发,及代码合入,此时主线分支和开发分支,并行开发合入代码

# 5.2025/06/05日,开发分支开发自测完毕,申请合入主线,此时如果在Gerrit页面上直接“Cherry pick”,待Rebase合入时,始终报错:代码冲突,难以在Gerrit页面进行解决(特别是代码量特别大的时候)

# 6.问题:如何有效快速的把开发分支合入到主线分支??
注意:是两个分支的合并,开发分支迁移合并到主线分支

在这里插入图片描述

2.分支合并步骤

注意:主线分支和开发分支均暂停合入代码

2.1 本地主线分支创建主线临时分支

# 第一步:在本地,主线分支创建临时分支
git fetch origin xxx-develop-master:master-0605

# 命令:git fetch <远程仓库名称> <远程分支名称>:<本地分支名称>
# 解析:从远程仓库获取特定分支的更行,并将其映射到本地分支,本地分支若不存在则自动创建

2.2 本地开发分支创建开发临时分支

# 第二步:在本地,开发分支创建临时分支
git fetch origin xxx-develop-master-v2:master-v2-0605

2.3 切换到主线临时分支

# 第三步:切换到主线临时分支
git checkout master-0605

2.4 主线临时分支绑定远程仓库主线分支

# 第四步:主线临时分支绑定远程仓库主线分支
git branch -u origin/xxx-develop-master

# 尝试拉取最新分支
git pull --rebase

2.5 切换到PyCharm操作

# 第五步:一定要切换到Pycharm操作,Pycharm带页面化操作,能够更友好、更便捷地解决代码冲突

# Pycharm打开项目后,点击左下角Git图标,可以看到Local(本地分支),显示创建的:master-0605(主线临时分支),master-v2-0605(开发临时分支)

在这里插入图片描述

2.6 开发临时分支合并到主线临时分支

# 第六步:在Local本地代码分支下,选中开发临时分支:master-v2-0605
# 点击右键,点击:“Merge ‘master-v2-0605’ into ‘master-0605’”,含义是把 ‘master-v2-0605’ 分支 合入到 ‘master-0605’ 分支

2.7 借助PyCharm页面化解决冲突

# 第七步:此时,Pycharm页面,会自动弹出冲突代码的对话框

注意!注意!注意!:一定不要把对话框关闭!一定不要把对话框关闭!一定不要把对话框关闭!

# 正确的做法,双击冲突的代码文件,一个文件一个文件的解决(此步骤没有截图)

# 待所有冲突文件手动解决完毕后,Pycharm自动会把 ‘master-v2-0605’ 分支 合入到 ‘master-0605’ 分支,不用人工操作,等待即可,此时对话框会自动关闭

2.8 如果遇到缺失Change-Id

# 第八步:此步骤不是必须步骤,如果遇到,则可以安装此步骤的建议进行处理

# 借助2.7步骤解决完毕冲突之后,可以提交代码
git push origin HEAD:refs/for/xxx-develop-master

# 如果此时报错:
remote: ERROR: commit 8bc9e75: missing Change-Id in message footer
# 表明:此次提交记录缺少 Change-Id字段,无法推送到远端代码仓库
# 根据提示信息进行处理,执行:
gitdir=$(git rev-parse --git-dir); scp -p -P 29418 xxx@IP:hooks/commit-msg ${gitdir}/hooks/
# 或者执行:
f="$(git rev-parse --git-dir)/hooks/commit-msg"; curl -o "$f" http://IP:81/tools/hooks/commit-msg ; chmod +x "$f"

# 最后执行:
git commit --amend --no-edit
# 执行:git commit --amend --no-edit 时,没有更换commit信息,Gerrit不让提交,此时不用处理,继续2.8步骤修改commnit信息即可

2.8 更新添加commit信息

# 第八步:借助Pycharm解决冲突之后,commit信息会自动填充,有时不符合Gerrit代码提交规则,不允许推送,此时需要更换commit信息

# 借助 Git Gui工具,在本地代码目录,右键,点击 “Open Git DUI here”
# 此时如果 Git Gui 页面没有内容的话,点击 “Amend Last Commit”,功能:Git中用于修改最近一次提交的操作

# 此时可以在 Git Gui 页面更新 “Commit Message” 信息

# 更新完毕后,在 Git Gui 页面点击 “Commit” 按钮,进行提交

2.9 推送代码到远程仓库

# 第九步:推送代码到远程仓库
git push origin HEAD:refs/for/xxx-develop-master

2.10 此时代码已经提交到Gerrit代码远程仓库

# 第十步:合入代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@TangXin

路漫漫其修远兮,吾将上下而求索

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值