Git如何清理多余的合并提交及重复的代码提交记录?
操作前请先执行
git status确认工作区无未提交的修改,若有未提交内容可先执行git stash暂存,操作完成后再执行git stash pop恢复。
操作步骤
- 第一步:执行交互式变基,基点为你要保留的最后一个正常提交a54681
git rebase -i a54681 - 第二步:在弹出的编辑器中,你会看到按时间从旧到新排列的4条后续提交记录,将除第一条之外的所有记录前的
pick修改为squash(可简写为s),修改完成后保存退出编辑器。 - 第三步:此时会弹出新的提交信息编辑窗口,删除原有所有提交信息,仅保留你需要的提交内容
Refactored ...,保存退出编辑器。 - 第四步:此时本地的master分支已经是你需要的提交结构,由于你修改了已推送至远程的提交历史,需要执行强制推送覆盖远程分支,注:如果是多人协作分支,请提前告知所有协作者本次历史修改,避免后续其他人同步时生成多余的合并提交
git push origin master --force-with-lease
异常回退
如果变基过程中出现冲突或操作失误,可执行以下命令回到变基前的状态,重新操作:
git rebase --abort
内容的提问来源于stack exchange,提问作者binaryBigInt
相关产品推荐
相关产品推荐

