我不小心在存储库中运行了命令git pull <wrong_remote_url>
。在拉动过程中,我通过单击Ctrl+C
来取消它。
$ du -h -d 1
20M . # At first the repository is only 20M
$ git status
OK
$ git pull https://example.com/large_repository.git # accidently pull the wrong repository
press Ctrl + C during the pull # cancel it during the pull, because I find it is downloading a lot of large file
$ git status
On branch master
nothing to commit, working directory clean
$ du -h -d 0
2.1G . # Now the repository is too large
$ du -h -d 0 .git
2.1G .git # There may be a lot of cached and useless file in .git directory
存储库仍然可以使用,我仍然可以像往常一样使用git,多余的2G
文件不会被推送到存储库。但是我知道2G
目录中大约有.git
个缓存文件。如何删除这些文件?我尝试了git gc
和git clean
,但是它们不起作用。由于某种原因,存储库中有一些数据库数据,因此我不想删除存储库并再次克隆它。
我在.git/objects/pack/
中找到了名为tmp_pack_9qTKaE
,tmp_pack_CKZSuG
等的tmp文件。
我认为这是大的,无用的缓存文件。如果我删除它们,它会起作用:
rm -f .git/objects/pack/tmp_*
git中是否有任何命令可以自动安全地删除这些文件?
答案 0 :(得分:1)
运行命令
git repack -Ad
git prune
我从this answer's comment得到了这个答案。可以查看更多文档here。运行这两个命令后,.git/objects/pack
中的tmp文件已被删除。
答案 1 :(得分:0)
尽管它有点题外话,但我将其添加到先前的答案中:
如果要实现中间拉动,则是拉错了本地分支,或者拉出了错误的远程分支,请不要中断它。
让它完成然后git merge --abort
完成会更容易。