如何合并最新提交与未提交文件,避免Merge提交满足PR推送要求
Git功能分支仅保留单条提交、无合并记录的操作方案
核心逻辑
你之前使用git merge master的方式合并最新代码,会额外生成合并提交记录,不符合要求。改用变基+提交压缩的方案即可实现需求。
操作步骤
- 先同步本地master分支到远程最新状态
git checkout master git pull origin master
- 切回你的开发分支,执行变基操作,将你的开发提交迁移到最新master的提交链顶端,不会产生合并提交
git checkout 你的开发分支名 git rebase master
注意:变基过程如果出现代码冲突,逐文件解决冲突后执行
git add .,再运行git rebase --continue即可继续变基流程,全程不要执行merge操作。
- 把你所有的开发提交压缩为1条(如果本地开发时只有1条提交可跳过此步)
最简单的软重置方式:
git reset --soft master git commit -m "你的功能提交说明"
- 推送本地分支到远程,如果你之前已经推送过该分支,需要加强制推送参数,推荐使用更安全的
--force-with-lease防止误覆盖他人提交
git push --force-with-lease origin 你的开发分支名
最终效果
操作完成后发起PR,提交记录完全符合要求:git日志默认按时间倒序展示,你的单条提交排在最顶部,下方依次是其他同事的master提交,没有任何Merge master into branch类的合并记录。
注意事项
仅在你自己独占使用的功能分支上执行上述变基操作,不要在多人协作的公共分支执行变基,不会影响其他同事的代码。
内容的提问来源于stack exchange,提问作者Mehmet Ali
相关产品推荐
相关产品推荐

