我意外地将一个大文件检查到磁盘空间紧张的机器上的仓库中。我们的系统管理员看到了这个并删除了.git
目录
rm -rf .git/objects/51/ecbb7eb634f878f8460c55cae815c7515265bb
我现在在推送时遇到致命错误
$ git push origin master
Counting objects: 63, done.
error: unable to find 51ecbb7eb634f878f8460c55cae815c7515265bb
Delta compression using up to 32 threads.
Compressing objects: 100% (43/43), done.
fatal: unable to read 51ecbb7eb634f878f8460c55cae815c7515265bb
error: pack-objects died with strange error
error: failed to push some refs to 'git@github.com:repo_name.git'
如何删除51ecbb7eb634f878f8460c55cae815c7515265bb
提交
我提交后还有未合并的提交,我不能丢失
答案 0 :(得分:1)
您可以尝试
git rebase -i <commit_sha1>^
并删除相应的行;其中<sha1>
是引入大对象的提交的sha1)当然,在执行此类操作之前,您可能需要进行一些备份。
编辑:在最后一步中,你不应该推送到远程仓库(因为我们删除了它,它是不可能的)。相反,你应该克隆你的本地回购。即:连接到远程服务器,例如使用ssh,然后克隆你在本地工作站上的理智回购。