如何阻止新提交自动加入GitLab已创建的未关闭合并请求?
阻止新提交自动加入已有合并请求的解决办法
合并请求默认会和源分支绑定,只要源分支有新提交就会同步进去。要切断这种关联,核心是让合并请求不再指向原来的功能分支,或者把新提交从原分支移走,下面是具体操作:
方案一:修改现有合并请求的源分支
- 先找到你想保留在合并请求里的最后一个提交的哈希值(可以用
git log查看,假设哈希是abc123) - 基于这个提交创建一个新分支,作为合并请求的最终源分支:
git checkout abc123 git checkout -b feature/pr-fixed - 把这个新分支推送到远程:
git push origin feature/pr-fixed - 去Git平台(比如GitHub/GitLab)的合并请求页面,把源分支改成刚创建的
feature/pr-fixed。之后原来的功能分支再新增提交,就不会同步到这个合并请求里了。 - 如果原来的功能分支上的新提交还要保留,就把它们移到另一个新分支继续开发:
git checkout original-feature-branch git checkout -b feature/continue-dev git reset --hard abc123 # 这一步会把原分支回滚到之前的提交,新提交会留在feature/continue-dev分支上
方案二:关闭旧PR,用新分支创建新PR
- 同样找到要保留的最后一个提交哈希
abc123,创建新分支并推送:git checkout abc123 git checkout -b feature/new-pr-branch git push origin feature/new-pr-branch - 直接关闭原来的合并请求,用新分支重新创建一个指向主分支的合并请求。
- 原功能分支可以继续开发新内容,完全不会影响新的PR。
注意事项
- 不要直接在原分支上删除新提交,除非你确定这些提交没用了,否则容易丢失代码。
- 部分平台有“锁定合并请求”的选项,但这个主要是防止他人修改PR内容,不能阻止源分支的提交同步,所以优先用分支调整的方法。
内容的提问来源于stack exchange,提问作者Ramakrishna Yelduti
相关产品推荐
相关产品推荐

