赞
踩
什么是 Git LFS?
Git 是跟踪代码库演变和与同行高效协作的绝佳选择。但是,当您要跟踪的存储库非常大时会发生什么?
如果您考虑一下,存储库变得庞大的主要原因大致有两个:
但是,不要仅仅因为你有一个大的存储库历史记录或巨大的文件而放弃 Git 的出色功能,这两个问题都有可行的解决方案。一般来说,版本控制的好处还是存在的,而且应该用于各种各样的项目当中去。
对于第一个问题,可以使用git浅层克隆和git稀疏检出方法解决,此文不做详述。
对于第二个问题,使用 LFS : 有效的处理大文件。
当然,LFS 并不能像"变魔术一样"处理所有的大型数据:它需要记录并保存每一个变化。然而,这就把负担转移给了远程服务器 - 允许本地仓库保持相对的精简。
为了实现这个可能,LFS 耍了一个小把戏:大文件是在签出过程中下载的,而不是在克隆或获取过程中下载的。它在本地仓库中并不保留所有的文件版本,而是仅根据需要提供检出版本中必需的文件。
Git LFS 通过将存储库中的大文件替换为小指针文件来实现这一点。在正常使用期间,您永远不会看到这些指针文件,因为它们由 Git LFS 自动处理:
Git LFS是无缝的:在你的工作副本中,你只会看到你的实际文件内容。这意味着你可以在不改变现有的Git工作流程的情况下使用Git LFS;你只需像平常一样进行git checkout、编辑、git add和gitcommit。git clone和git pull操作将明显加快,因为你只下载你实际检出的提交所引用的大文件的版本,而不是曾经存在的文件的每个版本。
下载和安装 Git LFS
本地新仓库支持 Git LFS
创建一个新的 Git LFS 仓库
要创建一个新的 Git LFS 仓库,你需要在创建仓库后运行 git lfs install。
这将在你的仓库中安装一个特殊的预推送pre-push
Git hook
Git钩子,当你git push
时,它将把Git LFS文件传输到服务器。GitLab/Github/Gitblit 它们已经支持LFS并都自动启用了LFS选项,对于没有启动的需要在仓库设置中启用Git LFS。
选择您希望 Git LFS 管理的文件类型(或直接编辑 .gitattributes)。您可以随时配置其他文件扩展名。
git lfs track "*.psd"
现在确保跟踪 .gitattributes:
git add .gitattributes
定义 Git LFS 应跟踪的文件类型本身不会将任何预先存在的文件转换为 Git LFS,例如其他分支上的文件或您之前的提交历史记录中的文件。这意味着你应该在文件没有提交到仓库前就让 LFS 进行追踪。
可以在初始化仓库选择配置要追踪的文件规则(就跟配置忽略文件一样)。
只需像往常一样提交并推送到 GitHub;例如,如果您当前的分支命名为:main
git add file.psd
git commit -m "Add design file"
git push origin main
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。