提交PR后将master合并到feature分支,避免PR Diff混入无关变更
如何在同步master分支变更时避免PR Diff混入master内容?
我基于默认的master分支创建了feature分支并做了修改,已提交PR。现在有新的变更合并到了master分支,我需要同步这些变更来修复评审意见(主要是工具类和库的使用)。但尝试Rebase、Merge等操作后,PR的Diff中总会混入master的变更,而非仅显示我的修改。除了新建feature分支并重新提交PR外,在GitHub上有没有其他实现方式?
我的尝试过程
错误的Rebase操作流程
# 初始创建分支并推送 git checkout master git checkout -b feature # 在feature分支上修改并提交代码 git push origin feature # master分支新增变更并推送 git checkout master # 在master分支上修改并提交代码 git push origin master # 尝试Rebase同步 git checkout feature git rebase master git push origin feature # 推送失败,提示本地feature分支HEAD与远程不一致 git pull --rebase git push origin feature
这个操作会导致master的变更被混入PR Diff,同时feature分支的提交ID也会发生变更(Rebase的正常现象)。
Merge操作的情况
如果将上述步骤中的Rebase替换为Merge,PR Diff中不会显示master的变更,但这不符合我想要的Rebase同步的需求。
可行的Rebase解决方案
# 初始创建分支并推送 git checkout master git checkout feature # 在feature分支上修改并提交代码 git push origin feature # master分支新增变更并推送 git checkout master # 在master分支上修改并提交代码 git push origin master # 正确的Rebase同步步骤 git checkout feature git rebase origin/master # 也可以基于本地master分支执行Rebase git push -f origin feature # 这一步至关重要,如果执行`git pull --rebase origin feature`会导致master变更混入Diff
亲测此方法可行,既能通过Rebase同步master的最新变更,又能保证PR Diff仅展示我在feature分支上的修改内容。
内容的提问来源于stack exchange,提问作者behinddwalls
相关产品推荐
相关产品推荐

