Git LFS与Artifactory Workflow

时间:2018-03-02 23:09:52

标签: workflow artifactory git-lfs

我一直在阅读Artifactory文档,我很难理解Git LFS的工作流程是如何工作的,或者我为什么要使用Git LFS。如果你想有选择地下载完整的大文件,你会只使用Git LFS吗?

在我的情况下,我有一堆大文件,我在使用Git LFS跟踪后尝试上传到Github。公司管理员说我的回购对于Github来说太大了,并建议使用Artifactory。

我正在学习将我的大文件上传到Artifactory中的命名空间。当我将来更新这些文件的版本时,我不能只将它们上传到Artifactory中吗?当我想下载这些文件时,我将需要完整的大文件。我只是想要一种方法来获取最新版本的大文件,但也可以选择回到历史记录并获得以前的版本。我应该单独使用Artifactory吗?

2 个答案:

答案 0 :(得分:0)

假设您有一个git项目,其资源目录包含1000个图像文件,每个文件大约有1MB。 如果你希望它被git跟踪,你将不得不推动所有这些,并使你的VCS充满大文件,推送超过1GB的你可能并不真正需要跟踪的东西。

git-lfs将使用“书签”文件替换这些文件,该文件可能如下所示:

  

版本https://git-lfs.github.com/spec/v1 oid   SHA256:4665a5ea423c2713d436b5ee50593a9640e0018c1550b5a0002f74190d6caea8   大小1000000

实际文件将存储在artifactory中,“bookmark”文件将存储在git中。当用户提取文件时,客户端首先从git中提取,然后使用git-lfs替换文件留下的数据从artifactory下载。

通过这种方式,您将受益于所有git的可能性,而不会通过大量不必要的大文件向您的分支机构发送垃圾邮件。你所有的git命令都可以开箱即用。 (假设正确配置了git-lfs)

答案 1 :(得分:0)

这听起来像是Git LFS设计的确切情况。

您可以简单地将所有大文件上传到Artifactory中,并在每次更改时对其进行更新,但这将需要大量的手动处理,例如下载正确版本的文件,以使您的存储库结构化的方式进行操作。版本清除等。

或者,您可以将所有内容都保存在Git存储库中,但是您会在仓库规模上遇到麻烦,无论是主机抱怨还是每次克隆时下载所有大文件所花费的时间。回购。

Git LFS旨在解决这些问题。您具有相同的Git界面和版本历史记录,但是大文件本身存储在更合适的位置(在本例中为Artifactory)。这样一来,您就可以按照与以前完全相同的方式继续工作,但是可以消除大型文件遇到的问题。