我的公司正在考虑实施Git,但我对如何设置它的最佳方式有疑问。我们有3个站点,并计划使用Gerrit2来创建镜像。我们的存储库大约2GB,我们想开始添加二进制文件。我担心空间使用情况。我不介意所有版本的二进制文件都存储在少数几个位置,但我想确保它们不会让克隆操作陷入困境。
我知道Git使用硬链接,但我认为只有在每个安装上放置一个存储库副本时才能使用。是否有更好的选择,如果有,有什么权衡?我正在看的选项是“--shared”和“--reference”。
答案 0 :(得分:6)
git media
的mentioned Marcelo的另一种替代方法是 git annex :
git-annex不是git-media,尽管他们都从类似的方向处理同样的问题。我在编写git-annex之后才了解到git-media,但我可能仍然会编写git-annex而不是使用它。目前,git-media的优点是使用git污迹过滤器而不是git-annex的一堆符号链接,它可能更适合某些情况。
它缺乏git-annex对广泛分布式存储的支持,只使用一个后端数据存储 它也不支持文件内容的部分检出,例如git-annex。
注意:abdelsaid添加了in the comments:
您可以将git-annex与 bup 一起使用(bup允许您拥有版本),请参阅 git-annex/ special remotes/ bup
(和Using bup)
答案 1 :(得分:3)
对大型二进制文件使用git-media。它将对二进制文件的引用存储为SHA1总和,并将二进制文件本身托管在您选择的位置(和协议)中。当您执行克隆时,它仅获取签出工作副本所需的二进制文件。
答案 2 :(得分:3)
要使用原生git,请使用单独的repo通过git子模块存放二进制文件。这对我有用的IVR系统有很多巨大的.wav文件。如果您需要进一步澄清,请随时与我联系。
这是一篇很好的文章:
http://progit.org/book/ch6-6.html
希望这会有所帮助
答案 3 :(得分:2)