如果你不使用Git LFS,你已经落后了!

在过去几年中,Git版本控制系统在开发人员中的受欢迎程度持续增长,许多Subversion用户转而使用Git的“文件系统快照”方法,这与经典VCS软件的“文件更改日志”方法不同。

Git的小问题-大文件

然而,Git最初是用来处理源代码的,而不是用来存储二进制文件的。当开发团队将其用于大型二进制文件时,他们经历了性能的大幅下降。事实上,二进制文件根本不属于版本控制系统。然而,它们的存在对开发人员来说是信息丰富和直观的。用Github自己的话来说,Git支持的工作流“并不总是适用于大文件的版本控制”。他们的意思是大型二进制文件,如图形、音频、视频,甚至大型数据集的速度都很慢。

然后出现了Git LFS

去年4月,GitHub宣布Git大文件存储(LFS),当这些大型二进制文件是项目的一部分时,该增强功能很好地解决了性能问题。Git LFS是一个简单的下载和安装一旦配置完成(这也是非常直接的),它是完全透明的,所以你继续像以前一样工作,只是享受更好的性能。您的工作流程保持完全相同。

它也很灵活。您可以优化Git LFS以满足您的需求;媒体文件可以集成到VCS文件结构中,而您可以定义任何对您有意义的存储位置-在本地、远程或云服务器上。

gitlfs的秘密酱汁-指针代替下载
Git的LFS通过使用指向文件位置的指针实现了上述优点,避免了将大型物理文件移动到开发人员的本地工作环境的需要。它使用SHA-1校验和来确定文件的内容是否已经更改,这可以节省存储空间(它不需要太多的媒体或图形文件库来占用可用空间)。

Git LFS PRO TIPS -充分利用Artifactory

Artifactory支持本地Git LFS存储库现在让您在本地网络中管理二进制媒体资产,同时使您独立于网络或第三方服务。随着版本4.7的发布,Artifactory还支持远程和虚拟Git LFS存储库.远程存储库为您提供了一种在整个组织中共享二进制媒体资产的方法代理Git LFS存储库在另一个Artifactory实例中。假设Alice和Bob在同一个项目中工作,但是位于不同的国家。Alice冲洗图像文件,Bob冲洗视频文件。他们都需要访问对方的文件。它们每个都将自己的文件上传到各自Artifactory实例上的本地存储库,并创建一个远程存储库来代理对方的本地存储库。是这样的:

Git LFS和大文件传输

虚拟存储库使您的工作更加简单。通过封装本地和远程Git LFS存储库,您只需要使用一个URL (Artifactory中的虚拟Git LFS存储库的URL)配置您的Git LFS客户端,并使用该URL。底层存储库的细节是隐藏的。在我们的例子中,一旦Alice和Bob各自定义了一个虚拟存储库,他们的设置看起来像这样:

大文件传输- Git LFS和Artifactory

现在,如果您将这个场景扩展到10(或100)个开发人员在4个全球站点上从事同一个项目,您就会开始理解在Artifactory中使用远程和虚拟Git LFS存储库的价值和效率。这还是在我们了解Artifactory提供的细粒度访问控制或基于校验和的存储之前。

总之,如果您是一个Git用户,并且还没有下载Git LFS,那么现在就回到前面,下载Git LFS。从那以后,你就设置Git LFS与Artifactory一起工作只需5分钟