我有一个 git 存储库,其中有我想在 github 上公开的源代码。
但是,我还有数 GB 的数据,我不想公开和存放在存储库中 - 这些数据很大、是专有的、带有版权“负担”等等。但是,从逻辑上讲,它们也是“同一项目的一部分”,我希望对它们的历史记录有一定的控制权(基本上,git 已经做到了这一点)。
现在,我将它们放在存储库中的“数据”目录中,并且我已忽略该目录,并且我决定将它们放入 git。
但是,我读过有关 git-annex 的文章,它似乎可以满足我的要求。因此,我有两个问题。
- git annex 适合我吗?
我究竟应该如何在我的场景中使用 git annex?意思是 - 我应该使用哪些命令以及如何使用?
我尝试阅读官方文档,但它讨论的用例我并不关心。我只在一台计算机上有数据,而且我不认为我会很快移动它们(有这种可能性很好,但这不是我想要使用 git annex 的原因)。此外,文档很难阅读。
答案1
Git-annex 确实可以帮助您处理大块二进制数据。但我认为您应该考虑不要将其与包含源代码的存储库放在同一个存储库中。克隆存储库需要下载大量数据,如果这些大文件在某个时候更新,则很难回收空间。
因此,我建议你看一下Git 子模块并将/data
子模块制作到另一个主要包含或仅包含 Git-annex 数据的存储库。
我认为这种方法将有助于保持源代码存储库干净、快速,同时还提供了一种在一定程度上对大二进制对象使用版本控制的方法。
编辑/更新:我认为实际上是否为此创建子模块并没有太大区别。最后,它只是 Git 附件,用户可以根据需要下载文件;没有默认下载克隆上的所有文件。