git:历史记录中没有提交的文件,如何解释呢?

时间:2014-03-10 15:17:41

标签: git svn git-rewrite-history

我正在将许多svn存储库迁移到许多其他git存储库。那些svn repos有超过113000次提交。 我最终得到了非常大的git回购,我喜欢缩小它们。

我使用script找出最大的对象。这些对象不再存在于任何分支中,我想知道它们与哪些提交相关。 我找不到任何???

我使用了命令

git log --pretty=oneline --branches -- my_big_file_full_path

但没有回复。 有人可以解释为什么这个文件没有相关的提交? 如果确实如此,如何删除所有未链接到任何提交的文件?

PS:迁移过程非常繁重,我正在使用bfg(非常棒)删除一些已知的未使用文件夹。

2 个答案:

答案 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脚本允许我找到修改大文件的提交。