如何在IntelliJ/Git中合并提交,彻底移除大文件以推送到GitHub?
解决方法:修改提交历史移除大文件痕迹
如果这两个提交是当前分支的最后两次提交,用以下快捷方法就能搞定:
方法一:交互式变基合并提交
- 执行命令启动交互式变基,针对最近2个提交:
git rebase -i HEAD~2 - 在弹出的编辑器里,把删除文件那次提交的开头改成
squash或fixup:- 选
squash:会保留两次提交的注释,最后可以合并成一条 - 选
fixup:直接丢弃删除文件那次的注释,只保留第一次的
- 选
- 保存关闭编辑器,Git会自动合并这两个提交。
- 强制推送到远程仓库(因为改了历史,必须强制推):
git push -f
方法二:重置后重新提交
嫌变基麻烦的话,直接重置后重新提交更简单:
- 回退到添加大文件之前的状态,同时保留当前工作区的修改(也就是已经删完大文件的状态):
git reset HEAD~2 --soft - 重新提交所有变更:
git add . git commit -m "你的提交说明" - 强制推送到远程:
git push -f
注意点
- 强制推送会覆盖远程分支的历史,如果有同事在这个分支协作,一定要提前说一声,别搞丢别人的改动。
- 要是你之前已经把包含大文件的提交推过远程,那得用
git filter-repo彻底清历史,但你现在还没推成功,上面的方法足够用。
内容的提问来源于stack exchange,提问作者willbill
相关产品推荐
相关产品推荐

