我正在考虑使用GIT或我们的家庭照片。情景是我和我的女朋友都使用数码相机,将照片上传到我们自己的电脑。但是仍然希望将照片整理到不同事件的文件夹中,并让我们的两台计算机之间复制该组织。
通过在我们的中央服务器上安装GIT存储库主服务器,我们还可以查看来自电视的图像,或者如果我们在外出时需要它们,则可以通过FTP访问它们。
这意味着图像不会经常变化的结构。他们很少会被感动。最常见的操作是将带有新图像的文件夹添加到存储库并将其提交给主分支,以便图像可供所有人使用。
现在的问题是:如何在Git中处理图像?通过维护每个版本的存储库的映像,Git存储库是否会膨胀?或者它只会在实际更改内容时保留图像的历史记录?
对于两种给定的场景,磁盘空间使用的差异应该非常大。
答案 0 :(得分:49)
存储库中的每个对象都将存储一次,并由它的SHA1总和引用。这意味着将100KB图像的三个副本放在repo的两个目录中将使用100KB,加上一些无关紧要的开销。
同样适用于推,拉和分支:只要图像的SHA1总和没有变化,git就不会存储第二个副本或者必须在网络上移动多个副本。
您将在每台计算机上使用两倍的磁盘空间:Git在您的仓库的根目录中的隐藏.git目录中维护其所有数据的副本。
答案 1 :(得分:6)
我认为你应该考虑使用rsync。根据我的理解,你只想同步你的网络文件夹,对吧?是否真的需要版本控制?
答案 2 :(得分:2)
足够聪明,只能跟踪更改,而不是创建图像存储库的完整副本