Git合并请求含大量无关旧变更,如何更新Feature分支精简内容?
解决方法
1. 拉取master分支最新代码
先确保本地master分支是远程仓库的最新版本:
git checkout master git pull origin master
2. 同步featureBranch与master
根据团队的提交历史规范,选择以下两种方式之一:
方式一:使用Merge(保留完整合并历史)
如果团队习惯保留所有合并记录,执行以下命令:
git checkout featureBranch git merge master
若出现冲突,手动修改冲突文件后,提交并推送:
git add . git commit -m "Merge master into featureBranch" git push origin featureBranch
方式二:使用Rebase(生成线性提交历史)
如果偏好干净的线性提交历史,可使用rebase,但注意:若featureBranch已推送到远程且有其他成员协作,禁止使用此方法,避免破坏他人的工作副本:
git checkout featureBranch git rebase master
遇到冲突时,解决冲突后继续rebase:
git add . git rebase --continue
若要终止rebase操作,执行git rebase --abort。完成rebase后,由于提交历史被修改,需要强制推送(--force-with-lease比直接--force更安全,避免覆盖他人未同步的提交):
git push origin featureBranch --force-with-lease
3. 重新创建Merge Request
完成featureBranch与master的同步后,再从branchA向featureBranch发起Merge Request,此时MR中就只会显示你在branchA上做出的实际变更,无关的master同步内容会被过滤掉。
内容的提问来源于stack exchange,提问作者Pirri
相关产品推荐
相关产品推荐

