我们目前正在使用Subversion作为源代码存储库。我们正处于转换为Git的计划阶段。我们的Subversion存储库目前是19Gb。 Git存储库与Subversion的磁盘空间要求相比如何?我的19Gb svn存储库将在Git存储库中转换为什么。
答案 0 :(得分:17)
很难猜出Git存储库的确切大小,因为它取决于几个因素,例如
Git有一个很好的压缩算法,根据我过去的经验,它能够将SVN存储库的大小减少10倍。 Here's some examples
然而,最好的方法是亲自尝试。在本地计算机上,您可以将SVN存储库转换为Git
$ git-svn clone -s http://path/to/subversion reponame
然后运行git gc
,看看你需要多少空间。
答案 1 :(得分:1)
由于git会在每台计算机上保留整个存储库,因此它还会存储完整的历史记录,如果您已添加然后删除了一个大文件,您会注意到实际上磁盘空间没有减少。如果您完全确定要永久删除文件,则需要在git中运行特殊命令。
git filter-branch -f --index-filter 'git rm -r --cached --ignore-unmatch "filename"' --prune-empty HEAD
rm -rf .git/refs/original/ && git reflog expire --expire=now --all && git gc --aggressive --prune=now
今天我使用git svn命令将我的一个svn repos移动到git,这使您不仅可以移动当前数据,还可以移动历史记录。这就是我所拥有的。
我电脑上的当前svn repo大小是1.27 GB,新创建的git repo是3.24 GB。这是因为git repo包含整个历史记录,删除的文件实际上并没有在git中删除,直到你像我上面提到的那样明确地执行它。 如果您在转到git时发现任何问题,可以查找答案here