我想拥有一个主要由二进制文件组成的git存储库。
我需要跟踪已更改,添加和删除的文件到存储库,但我不希望git对文件内容进行版本化。
换句话说,我只需要git来跟踪更改(更改日志),而不是内容。
git可以实现这一点吗?
我应该为此使用其他东西吗?
答案 0 :(得分:13)
从@Tobu's answer到此related question:
要版本化并传播二进制文件而不将它们实际存储在git中,请尝试git-annex。
答案 1 :(得分:9)
git是一个内容跟踪器,所以如果你不想跟踪内容,它听起来就像是错误的工具。但是,我不确定如何在不跟踪其内容的情况下跟踪文件的更改。
答案 2 :(得分:2)
如果您不想存储这些垃圾箱,那么您可以在文件上使用二进制差异工具,然后将输出提交到版本控制中。然后可以将任何文本更改日志条目输入到提交消息中。
答案 3 :(得分:1)
也许我不明白你的问题,但如果你在文本文件中存储所有文件的时间戳呢?然后,您可以仅在版本控制中存储该文件,并让您的VCS区分它的不同版本。
答案 4 :(得分:0)
但我不想让git对文件本身的内容进行版本化。
这正是Git Large File Storage (LFS)的作用(GitHub,2015年4月)。
项目为git-lfs(请参阅 git-lfs.github.com ),并通过服务器测试支持:lfs-test-server:
您只能在git仓库中存储元数据,在其他地方存储大型文件。
大文件通过HTTPS分别同步到可配置的Git LFS服务器,因此您不必限制推送Git存储库的位置。
大型文件仅在签出时从服务器同步,因此当不需要时,本地存储库不会承担每个文件的每个版本的权重。
存储在Git中的元数据是可扩展的,以备将来使用。它目前包含文件内容的散列和文件大小,以便客户端在下载或退出大量下载时可以显示进度条。