我的文件布局是这样的
~/foo/
foo.pl
Foo.pm
~/foo/data
~/foo/data/an_article.txt
~/foo/data/an_article/
~/foo/data/an_article/image.jpg
~/foo/data/an_article/movie.mp4
~/foo/data/another_article.txt
~/foo/data/another_article/
~/foo/data/another_article/audio.mp3
~/foo/data/another_article/raster.nc
当然,我想git
跟踪所有文本文件(程序、CSS、html 模板和扩展名为.txt的文章)的更改。关于二进制文件,我只想跟踪git
它们的最新版本。因此,如果我更改movie.mp4,应该在其and中包含最新版本,但不应该保存以前的版本。换句话说,我想对除了二进制文件之外的所有东西都做它的事情,但是对于二进制文件应该假装它是.git
push
pull
git
git
git
rsync
逻辑
从上面的布局可以看出,~/foo/data
这确实是我的数据存储。每篇文章都有自己的同名文件夹,其中包含任何相关的二进制文件。这可确保所有相关文件都非常接近。如果我将二进制文件移到这个结构之外,那么我不仅必须编写一个单独的部署脚本(可能是一个rsync
同步二进制文件的脚本),更重要的是,我破坏了我的数据存储的逻辑结构。
建议?