Efficient storage of binary files in a git repository

我只是一个虾纸丫 提交于 2019-12-03 12:49:23

git is a content tracker, so if you don't want to track content it sounds like it's the wrong tool for the job. I'm not sure exactly how you would track changes to files without tracking their content, though.

toolbear

Mined from @Tobu's answer to this related question:

To version and propagate binary files without actually storing them in git, try git-annex.

If you don't want to store the bins, than you could use a binary diff tool on the files, then commit the output into version control. Any text change log entries can then be entered in to the commit message.

Maybe I don't understand your question but what if you store in a text file the timestamp of all files? Then, you could store in version control only that file, and let your VCS diff the different versions of it.

but I don't want for git to version the content of the files themselves.

That is exactly what Git Large File Storage (LFS) does (by GitHub, April 2015).

The project is git-lfs (see git-lfs.github.com) and a tested with server supporting it: lfs-test-server:
You can store metadata only in the git repo, and the large file elsewhere.

  • Large files are synced separately to a configurable Git LFS server over HTTPS, so you are not limited in where you push your Git repository.

  • Large files are only synced from the server when they are checked out, so your local repository doesn't carry the weight of every version of every file when it is not needed.

  • The meta data stored in Git is extensible for future use. It currently includes a hash of the contents of the file, and the file size so clients can display a progress bar while downloading or opt out of a large download.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!