如何忽略历史提交,仅推送Git仓库的当前状态?
如何忽略Git历史提交,仅推送当前仓库状态?
你可以通过重新初始化本地仓库、基于当前状态创建全新提交的方式,彻底清除包含大文件的历史记录,再强制推送到远程仓库。具体步骤如下:
确保当前工作区已完成大文件删除,且所有修改都已提交(如果未提交,先执行:
git add . git commit -m "清理大文件后的当前状态")
备份原Git历史(防止操作失误可恢复):
mv .git .git_backup初始化新的Git仓库:
git init暂存当前所有文件:
git add .提交当前状态作为全新的初始提交:
git commit -m "初始提交:清理大文件后的仓库状态"关联你的GitHub远程仓库(替换为实际仓库URL):
git remote add origin https://github.com/你的用户名/仓库名.git强制推送覆盖远程仓库的历史记录:
git push -f origin main # 若你的默认分支是master,替换为master
补充说明
之前用git revert或普通的git reset无效,是因为这些操作并没有彻底移除历史提交里的大文件记录——revert只是新增撤销提交,旧提交仍存在;git reset如果只在本地操作,远程仓库的历史还保留着大文件的提交记录。而重新初始化仓库的方式,相当于完全抛弃了之前的所有历史,只保留当前的干净状态。
⚠️ 注意:强制推送会覆盖远程仓库的全部历史,如果有其他协作者在使用这个仓库,一定要提前通知他们,让他们重新克隆仓库,避免后续出现代码冲突。
内容的提问来源于stack exchange,提问作者Hernandes Matias Junior
相关产品推荐
相关产品推荐

