Git LFS(全称为Git Large File Storage,Git大文件存储)被许多团队用来治理和存储大文件。本篇文章将解释Git LFS是什么,它的性能和应用场景,以及它到底是不是治理大文件的最佳版本控制工具。
什么是Git LFS(Git大文件存储)?
Git LFS是一种开源的Git扩大,用于治理大文件和二进制文件,将它们存储在独自的 “LFS 存储库” 中, 从而让Git存储库放弃在一个可治理的规模。
现在,很多的我的项目都蕴含代码和二进制资产。将大型二进制文件存储在Git存储库中可能会成为Git用户的瓶颈。
Git LFS存储如何工作?
Git大文件存储应用指针来援用文件,而不是将理论文件或二进制大对象(blobs,一种将二进制文件存储为一个实体的数据类型) 存储在Git存储库自身中。
因而,大文件/二进制大对象不会被间接写入Git存储库,而是被写入一个指针文件。文件/二进制大对象自身会被写入一个独自的服务器,称为LFS存储库。通过这种形式,能够对大文件进行版本控制,以及治理二进制大对象,同时开释Git存储库的空间。
我应该应用Git LFS吗?
如果您须要在Git中治理大文件或二进制文件,那么能够思考应用Git LFS。(然而,如果您的团队中有美术人员和设计师,须要对他们的大型二进制艺术文件进行版本控制,那么您可能不心愿应用Git LFS。对于这一点,咱们将在下一节中具体探讨。)
应用Git LFS或其余代替计划的起因是,Git是一种分布式版本控制系统,每个开发人员在本地计算机上都有残缺的变更历史记录。对大型二进制文件进行更改会导致什么?每次更改文件并提交后,Git 存储库的规模都会依据文件的大小而减少。这意味着获取文件会破费很长时间,并且很难对这些二进制文件进行版本控制和合并。
因而,每当文件增长时,Git存储库也会增长,这会导致Git用户在检出和克隆存储库时呈现性能降落的状况。
Git LFS是为解决这些问题而创立的,但它本身也存在一些问题和限度。
Git LFS的问题
Git LFS尽管无效,但许多应用它的团队发现其治理起来较为艰难。以下是思考寻找Git LFS代替计划的一些起因:
设置Git LFS十分耗时
要应用Git LFS,每个用户都必须在其服务器和工作站上装置它。这样做很耗时,对管理员来说也是一种累赘。而且一旦装置实现,对Git LFS的可见性和控制性都较低。
保护Git LFS须要额定的步骤
保护Git LFS须要额定的步骤,因为您必须为每个Git存储库(即每个Git我的项目)设置Git LFS。这意味着每个存储库都须要装置Git LFS,您还须要通知LFS要跟踪的文件类型,而后将跟踪信息增加到存储库中,以便在提交该类型的文件时,它将被搁置在LFS存储库中。对于还不太理解Git的用户来说,这颇具挑战性。
Git LFS不适用于美术团队
Git LFS对于软件开发人员来说是有帮忙的,因为它使克隆和分支更加容易。但对于大多数须要与美术人员或设计师合作的团队来说,出于以下几个要害起因,它不是一个好的解决方案:
- 它不与风行的美术和设计软件集成;
- 非编码人员依然须要接受从Git LFS拉取其资源时的性能损失;
- 它是一个基于命令行的工具,因而用户必须学习一些命令能力获取或提交资产。许多美术人员会在这方面遇到困难,或者他们基本不愿这么做。尽管有一些图形化的Git LFS工具,但游戏引擎和设计工具与Git的集成较差;
- 作为基于命令行的工具,查找文件的正确版本也变得复杂,这使得美术人员难以迭代特定资产。
因而,对于游戏开发或虚构制作团队来说,Git LFS并不是一个现实的解决方案。
上述问题会影响团队的绩效。因而,只管Git自身是收费的,但当您的团队须要更快、更具可扩展性的解决方案时,应用它的老本可能是低廉的。
Git LFS的代替计划
Git LFS并不是在Git中治理大文件的惟一形式。代替计划包含其余开源或第三方修复程序,例如:
- git-annex
- git-bigfiles
- git-fat
- git-media
- git-bigstore
- git-sym
这些选项依然存在与Git LFS雷同的问题:它们是基于命令行的工具,不与美术或设计工具集成,如果应用它们,您依然须要获取和发送文件(意味着依然须要期待),而且找到一个文件的最近版本很具挑战性。您须要一种更好的形式来治理大型文件和二进制文件。
存储大文件的最佳版本控制工具:Perforce Helix Core
当初的我的项目比以往都大得多,其中蕴含许多的文件和混合资产。Git和Git LFS根本无法版本控制它们,但Perforce Helix Core能够。
Helix Core是来自Perforce的旗舰版本控制软件,是大型文件治理的最佳版本控制工具,起因如下:
二进制文件解决
Perforce Helix Core非常适合治理大型二进制文件。在Perforce Helix Core中,大文件存储是一种原生的能力,而不是附加组件。它让您可能将二进制文件与源代码一起存储。实际上,您的所有最大文件——二进制文件、源代码、艺术文件、视频文件、图像、库和构建产物等,都能够寄存在单个储存库中。将所有资产存储在一个储存库中能够让扩散的团队更快地口头。
可扩展性
Perforce Helix Core可能随着团队的寰球扩大而扩大。Git通常通过间隔用户数千英里的单个服务器拜访,而应用Git LFS时,用户依然必须通过网络获取他们须要的二进制文件。得益于分布式架构,Perforce Helix Core能够通过边缘服务器拜访,将资产搁置在凑近用户的地位,从而使他们更快地获取这些资产。
平安
在Perforce Helix Core中,您能够将权限设置为单个文件和IP地址,因而团队成员和内部贡献者只能拜访他们须要的文件,或者您认为他们须要的文件。这缩小了数据量,并爱护了您的知识产权。您无奈在本地Git中执行此操作,即便您应用相似GitHub这样的Git管理器,也只能为每个储存库或分支设置权限,而不能为单个文件设置权限。
合作
对于在数字资产上合作的团队来说,Perforce Helix Core比Git LFS更好,因为它提供了更好的文件锁定性能。LFS的“文件锁定”性能实际上只是一个“存储库锁定”,就是当更改中蕴含被其余用户锁定的文件时,此性能会阻止这个更改被推送到主储存库。
而Perforce Helix Core采纳的是实在的文件锁定策略。如果您尝试提交一个蕴含已锁定文件的待处理更改列表,您会收到谬误提醒。如果产生这种状况,您能够轻松地从更改列表中删除已锁定的文件并提交其余内容。此外,全局锁定可见性有助于在第一工夫避免抵触产生。不会有抵触,也不会有不必要的更改。
如果您想将您的Git LFS仓库迁徙到Perforce Helix Core,并保留历史记录,即便其中存储了数百GB的二进制数据,请分割Perforce中国受权合作伙伴——龙智,咱们的专家团队将为您提供业余倡议。
顺便说一下,Perforce也有Git
您是否有须要应用Git的团队?Perforce为您提供了多个选项。如果您同时应用Perforce Helix Core和Git,您能够应用收费的Git连接器将Git资产简略地镜像到Perforce Helix Core中,该连接器对于已取得Perforce Helix Core许可的客户收费。此外,Perforce还通过Helix TeamHub为存储在Helix Core中的Git资产提供了代码审查工具。当以这种形式配置时,Helix TeamHub对于持有Perforce Helix Core许可的用户也是收费的。
Helix TeamHub也能够独立于Perforce Helix Core应用,能够在云端或本地部署。在这种形式下,它不仅能够用于托管Git储存库,还能够用于SVN、Mercurial、WebDav、Ivy、Maven和Docker储存库。
您的团队能够从5个用户和1GB的存储空间开始收费应用,随着团队规模的增长逐渐付费。
文章起源:https://bit.ly/3mLVmdx