我错误地在本地Git Repo中完成了一个大文件的git commit
并且在远程推送(因为尺寸小于100Mb而非常大)。
在提交之后,我做了很多其他提交(因此我丢失了跟踪我提交大文件的位置)。
在git push
我收到错误,该文件是> 100 Mb(文件大小增加)因此无法推送。
我收到错误后,我在该文件上git rm
。
现在,当我再次git push
时,同样的错误仍然存在。
我的方法是首先检索git rm
文件(使用git checkout commit#wherefilewasnotdeleted
),然后从提交中删除文件(使用git reset -- soft Head
)?
我正在尝试上述方法但是当我执行git push
时,它还没有退出我推送的代码吗?
请建议做什么?
答案 0 :(得分:2)
您应该使用此工具:
https://rtyley.github.io/bfg-repo-cleaner/
这是完成此类任务的完美工具
BFG Repo-Cleaner
git-filter-branch的替代品。
BFG是git-filter-branch的一种更简单,更快速的替代方法,用于清除Git存储库历史记录中的错误数据:
- 删除疯狂的大文件
- 删除密码,凭证和密码其他私人数据
在所有这些示例中,bfg是java -jar bfg.jar的别名。
# Delete all files named 'id_rsa' or 'id_dsa' :
bfg --delete-files id_{dsa,rsa} my-repo.git