如何在Git中将7个已推送提交合并为一个?多次尝试未成功
如何将多个提交合并为一个并更新Pull Request
我懂你想把Pull Request里的7个提交合并成一个的需求,之前试了各种压缩提交的方法都没成功的话,来试试这个步骤清晰的方案:
先看你的提交列表:
接下来按以下步骤操作:
先把本地分支和上游仓库同步(假设上游仓库名为
upstream,主分支是main,请根据你的实际情况替换名称):git fetch upstreamgit checkout 你的分支名称git rebase upstream/main执行交互式变基,合并最近的7个提交:
git rebase -i HEAD~7
这时候会弹出文本编辑器,你需要保留第一个提交的pick,把剩下6个提交的pick全部改成squash(如果不想保留其他提交的描述信息,也可以改成fixup),修改完成后保存退出。随后编辑器会再次打开,让你编辑合并后的最终提交信息,写完后保存即可。
因为你已经把分支推送到远程仓库了,需要强制推送更新远程分支:
git push origin 你的分支名称 --force重要提醒:强制推送一定要确认这个分支只有你在使用,不然会覆盖其他人的修改!
最后回到你的Pull Request页面刷新一下,就能看到PR里只剩一个提交了。
如果变基过程中遇到冲突,先手动解决冲突,然后执行git add 冲突文件,再运行git rebase --continue继续变基;要是中途想放弃变基,直接用git rebase --abort就能回到之前的状态。
内容的提问来源于stack exchange,提问作者A srinivas
相关产品推荐
相关产品推荐

