2016-07-10 18 views
-1

基本上,我从psd到tiff是一个设计公司的大量图形文件。我们实际上处理这些文件中的每一个,并保留它的每个版本,从而构建庞大的库存。为例如说。我们有一个名为abc.psd的文件,就像10 MB一样,然后我们做一些编辑并将其保存为abc1.psd,这就像20 MB,这意味着10 MB原始+ 10 MB的新编辑,并继续,直到我们有时超过500 MB最终文件与旧版本一起占用GB空间。Git集线器像本地存储和大型图形文件的软件?

我从Gits中了解到(作为编码的初学者),它只需要10MB的额外编辑,而存储作为新版本,然后从原始文件中调用较旧的10MB。是否有人能够更好地解释这一点?

是管理文件git适合我。如果是的话,哪个软件正好考虑以下标准。

  1. 我的回购是私人的,所以我想要在公共回购中主持。
  2. 它应该能够处理大文件。
  3. 我想要在云上托管它。相反,我希望它能放在我的一台PC上,可以作为我的服务器,就是这样。

我遇到了一个名为GIT LFS的东西,但是想知道如果那是可以的私人回购,并且它适合管理文件只在本地而不是远程。

有人可以建议我可以采用的最佳工作流程。这将是一个很大的帮助。

回答

1

像git这样的版本控制系统通常会根据版本差异存储多个版本的文件。例如:

文件V1

cat 
    dog 
    cow 
    sheep 

文件V2

cat 
    cow 
    sheep 
    camel 

文件V1到V2差设置:

delete line 2 
    insert line "camel" after line 4 

足够大的文件和/或足够小的差异,存储在文件的版本上,其他版本的差异集将比存储所有c的空间占用更少的空间完整的版本。

现在...这个工作,版本控制系统需要计算一个文件的版本之间的差异的有效途径:

对于文本文件,很容易计算出差异。例如。

  1. 拆分的文本文件转换成线
  2. 计算散列每行
  3. 跟踪哪些行已被添加/移除/通过比较散列的列表改变。

对于二进制文件,如图像,很难计算差异,特别是如果图像文件已被压缩。如果没有有效的计算差异的方式以及表示它们的有效方式,典型的版本控制系统必须将每个版本的二进制文件存储为完整文件。当您将图像,库或可执行文件检入版本控制时,会发生这种情况。

GIT中的大文件(文本或二进制文件)的另一个问题就是您的本地回购将包含文件的副本,无论您是否需要它。这对于大文本文件来说是不好的,对于有很多版本的二进制文件来说更糟。

GIT-LFS所做的是用你的“repo”中的大(二进制或文本)文件替换为其他地方存储的大文件副本的链接。这有助于你做一个“git克隆”。您不会在本地回购中获得所有版本二进制文件的副本。但是他们仍然需要存储在某个地方,而且这个地方必须可以访问。


我碰到一些所谓的GIT LFS但不知道如果多数民众赞成确定为私人回购,如果它仅适用于本地和远程不能管理文件。

是的,这是可以的私人回购,虽然你需要一个单独的存储位置为您的大文件。

如果你所有的大文件都存储在本地,这并没有什么帮助。但是,如果您可以将大文件存储在本地文件服务器上,而不是在每个用户的本地存储库中都有副本,那将是一场胜利。但另一方面,现在备份本地文件服务器更为重要......因为它包含旧版本大文件的唯一副本。

此外,GIT LFS不会删除保留所有版本图像文件的完整联机副本的需要。

+0

- 是的,这正是我们正在研究的内容,将整个数据存放到一台可以充当服务器和其他用户的PC上(这正是现在正在做的事,但没有github),但只是想清楚 - GIT LFS会有所作为吗?它会存储版本或像Github这样的整个文件的差异。还有,如果你可以详细说明“... GIT LFS不会删除...图像文件”。这是否意味着必须拥有在线存储或可选。 –

+0

1)你在想什么? 2)否。它不会存储图像版本之间的差异。 3)是...所有版本的在线存储是强制性的,如果你想检索它们。 (除非您有HSM - 分层存储管理 - 系统透明地处理磁带迁移<->)。 –

相关问题