因此,我使用git一次(大量)拉取了大量文件。
但是后来我用git rm从git数据库中删除了这个目录,因为git从原点拉取需要很长时间,但是调用git rm并没有解决这个问题-- git从原点拉取仍然需要很长时间。
除了重新创建存储库之外,我还能做什么来解决这个问题?
发布于 2012-08-06 13:52:56
因为git保留了所有提交的历史记录,所以从技术上讲,这些内容存在于git repo中(谢天谢地,这正是源代码库的用处:)
您可以重写过去的历史记录以删除对该文件夹的所有引用。
该站点有一个使用filter-branch的示例
http://dalibornasevic.com/posts/2-permanently-remove-files-and-folders-from-a-git-repository
注意:如果您正在重写历史记录,则需要强制将存储库推送到服务器。如果其他人正在使用/致力于它,可能会给他们带来一些麻烦。
编辑:关于主题的另一个有趣的阅读:http://ramblinglabs.com/blog/2012/04/git-removing-sensitive-data-and-rewriting-history
发布于 2012-08-06 13:56:11
git rm实际上不会删除在存储库中引用的任何head的当前历史记录中提交的大型对象(例如分支、标签等)。
我不确定这是否是导致git拉得慢的原因(根据我的经验,一旦你拉出了一个很大的差异,在随后的拉出中,事情应该会恢复到快速和正常),但如果你怀疑这一点,你可以尝试用git rebase完全删除包含很大差异的提交。
一旦你这样做了,你就可以做一个git gc来清理从你的repo中分离的对象,并减小整体的大小。要与您的远程存储库进行rsync,您需要执行强制推送。
https://stackoverflow.com/questions/11823058
复制相似问题