我正在将许多svn存储库迁移到许多其他git存储库。那些svn repos有超过113000次提交。 我最终得到了非常大的git回购,我喜欢缩小它们。
我使用script找出最大的对象。这些对象不再存在于任何分支中,我想知道它们与哪些提交相关。 我找不到任何???
我使用了命令
git log --pretty=oneline --branches -- my_big_file_full_path
但没有回复。 有人可以解释为什么这个文件没有相关的提交? 如果确实如此,如何删除所有未链接到任何提交的文件?
PS:迁移过程非常繁重,我正在使用bfg(非常棒)删除一些已知的未使用文件夹。
答案 0 :(得分:1)
使用BFG后,您是否清理了存储库?如BFG网站上的“使用情况”部分所述,您应该使用
$ cd some-big-repo.git
$ git reflog expire --expire=now --all
$ git gc --prune=now --aggressive
删除存储库中不属于任何提交的对象。
答案 1 :(得分:1)
我终于在另一个stackoverflow问题Which commit has this blob?中找到了答案 使用shell脚本允许我找到修改大文件的提交。