GitLab已合并MR如何修改提交信息、拆分/合并提交?
GitLab合并MR后修改提交的操作方案
已合并MR的源分支修改后,原MR会自动更新吗?
不会。当MR处于“已合并”状态时,GitLab会将其标记为关闭,不会再监听对应源分支的后续变更来更新这个MR。
拆分已合并的提交并重新处理的具体步骤
针对你给出的分支状态:
源分支提交历史:
$ git log --oneline -n2 b6ddddddd commit message 1 b7ddddddd commit message 2
目标分支提交历史:
$ git log --oneline -n2 c6cccccac Merge branch `source` into `destination` c7cccccbc MR Commit message
1. 回退目标分支到合并前状态
先切换到目标分支,重置到合并提交的前一个版本:
git checkout destination git reset --hard c7cccccbc
2. 拆分源分支的提交
切换回源分支,用交互式变基拆分提交:
git checkout source git rebase -i HEAD~2
在弹出的编辑界面中,把要拆分的提交前面的pick改为edit,保存退出后执行:
git reset HEAD^
然后分阶段提交拆分后的内容:
git add <部分文件> git commit -m "拆分后的第一个提交信息" git add <剩余文件> git commit -m "拆分后的第二个提交信息" git rebase --continue
3. 强制推送修改后的源分支
git push --force-with-lease source
注意:强制推送会覆盖远程分支历史,若有其他协作者在该分支工作,务必提前沟通。
4. 重新处理合并
有两种可选方式:
- 重新打开原MR:在GitLab找到已合并的原MR,点击“重新打开”(部分版本支持),此时目标分支已回退,MR会自动更新差异,可再次合并。
- 新建MR:直接基于修改后的源分支创建新MR合并到目标分支,这种方式更清晰,避免和已关闭的MR混淆。
内容的提问来源于stack exchange,提问作者k1r1t0
相关产品推荐
相关产品推荐

