我觉得我的问题有点类似于CaptainPicard's但差异很大,我觉得有必要问一下。
我有一个旧的 SVN 存储库,其中包含大约 7500 个修订版,而这 7500 个修订版中的一部分是一些非常大的 .fla 文件。这些 .fla 文件存在于许多已创建的分支中。因此,导入后我的 .git 目录非常大,如果我得到整个主干、所有分支和所有标签,大约有 3.5 GB。为了将其配对,我做了另一个 svn 克隆,只是我想使用的主干目录,但包括所有分支显然会 pull 下所有历史记录和对象。
所以我的问题是,有没有办法告诉 git 只获取某些分支。例如只获取以某个标识符开头的分支(例如 mybranch)?
为清楚起见更新:我知道我可以将 git svn init/clone 指向单个特定分支。我想要做的是将它指向一组分支。例如,不是匹配 branches/* 只有分支匹配 mybranchset*
最佳答案
在 git svn
命令中,您只能使用星号通配符来指定目录的所有成员 (directoryname/*
) 而不是文件名变体 (fileprefix *
)。如果修改 git svn
以使用 SVN 的新 merge 跟踪,这在未来可能会改变。
因为 Git 只存储指向每个分支的提交的指针(而不是相关文件的重复目录),正如匿名答案所说,一旦重新打包,您的 Git 存储库将大大缩小。不幸的是,Git 无法像存储文本文件提交那样存储 Flash 文件的变更集,因此它们在更改时会被复制。
我建议你使用
$ git gc --aggressive
重新打包您的代码库。与 git repack
相比,它会删除重复项并进行更多优化。
关于git - 你能用 git svn 指定哪个 svn 分支吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/445500/