这个问题的解决方案随时间而发展,但是目前还没有明确的胜者。竞争者如下:
Git LFS,GitHub支持。
GitAnnex,GitLab支持,但只是企业版。
Git Annex更加成熟。这两个方案都开源并通过Git的插件机制实现。
还存在着一些其他的系统,这表明它是当前Git的一个尚未解决的痛点。Git Annex在http://git - annex .branchable.com/not/上比较了不同的方案。
【如果需要对媒体文件进行版本控制,你应该开始考察Git Annex。
它用Haskell编写并且包含在许多发行版的包管理系统里。
还需注意的是这种方案的主要优势是对媒体文件和相对应的代码,一起进行版本控制的能力。当与代码一起时,你可以很方便地检查不同版本间的代码。检查媒体文件的不同更难并且用处不太大。
简而言之,Git Annex在数据逻辑问题上使用了成熟的方案;增加一个间接层。通过在代码库里存储文件的符号链接来实现。二进制文件被存放在文件系统里并被本地工作区以如rsync的其他方式所用。创建这个解决方案当然需要更多的工作量。】