IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git-LFS:大文件也有了版本管理 -> 正文阅读

[开发工具]Git-LFS:大文件也有了版本管理

Git-LFS:大文件也有了版本管理

关于 GitHub 的大小限制

GitHub 限制存储库中允许的文件大小。 如果尝试添加或更新大于 50 MB 的文件,您将从 Git 收到警告。 更改仍将成功推送到仓库,但您可以考虑删除提交,以尽量减少对性能的影响。

GitHub 阻止超过 100 MB 的推送。

要跟踪超出此限制的文件,必须使用 Git Large File Storage (Git LFS)。 更多信息请参阅“关于 Git Large File Storage”。

在这里插入图片描述

Git LFS:(Large File Storage)把音乐、图片、视频等指定的任意文件存在 Git 仓库之外,而在 Git 仓库中用一个占用空间 1KB 不到的文本指针来代替文件的存在,通过把大文件存储在 Git 仓库之外,可以减小 Git 仓库本身的体积,使克隆 Git 仓库的速度加快,也使得 Git 不会因为仓库中充满大文件而损失性能;

如果您选择在仓库存档中包含 Git LFS 对象,则每次下载这些存档都会计入您帐户的带宽使用量。 每个帐户每月免费获得 1 GB 的带宽,您可以付费获得额外用量。 更多信息请参阅“关于存储和带宽使用”和“管理 Git Large File Storage 的计费”。

**核心思想:**把需要进行版本管理、但又占用很大空间的那部分文件独立于 Git 仓库进行管理。从而加快克隆仓库本身的速度,同时获得灵活的管理 LFS 对象的能力

安装 Git Large File Storage

Mac

  1. 导航到 git-lfs.github.com 并单击 Download(下载)。 也可以使用包管理器安装 Git LFS:

    • 要使用 Homebrew,请运行 brew install git-lfs
    • 要使用 MacPorts,请运行 port install git-lfs

    如果安装用于 Homebrew 或 MacPorts 的 Git LFS,请跳至步骤 6。

  2. 在计算机上,找到并解压缩下载的文件。

  3. 打开 Terminal(终端)。

  4. 将当前工作目录更改为您下载并解压缩的文件夹。

    $ cd ~/Downloads/git-lfs-1.X.X
    

    **注:**在 cd 后面使用的文件路径取决于您的操作系统、下载的 Git LFS 版本以及保存 Git LFS 下载的位置。

  5. 要安装该文件,请运行以下命令:

    $ ./install.sh
     > Git LFS initialized.
    

    **注:**您可能必须使用 sudo ./install.sh 来安装文件。

  6. 验证安装成功:

    $ git lfs install
    > Git LFS initialized.
    
  7. 如果未看到表示 git lfs install 成功的消息,请联系 GitHub Support。 确保包含操作系统的名称。

Windows

  1. 导航到 git-lfs.github.com 并单击 Download(下载)

    **提示:**有关安装 Windows 版 Git LFS 的其他方法的更多信息,请参阅此入门指南

  2. 在计算机上,找到下载的文件。

  3. 双击文件 git-lfs-windows-1.X.X.exe,其中 1.X.X 替换为您下载的 Git LFS 版本。 打开此文件时,Windows 将运行安装程序向导以安装 Git LFS。

  4. 打开 Git Bash。

  5. 验证安装成功:

    C:\Users\FLY>git lfs install
    Git LFS initialized.
    
    C:\Users\FLY>
    
  6. 如果未看到表示 git lfs install 成功的消息,请联系 GitHub Support。 确保包含操作系统的名称。

Linux

  1. 导航到 git-lfs.github.com 并单击 Download(下载)

    **提示:**有关安装 Linux 版 Git LFS 的其他方法的更多信息,请参阅此入门指南

  2. 在计算机上,找到并解压缩下载的文件。

  3. 打开 Terminal(终端)。

  4. 将当前工作目录更改为您下载并解压缩的文件夹。

    $ cd ~/Downloads/git-lfs-1.X.X
    

    **注:**在 cd 后面使用的文件路径取决于您的操作系统、下载的 Git LFS 版本以及保存 Git LFS 下载的位置。

  5. 要安装该文件,请运行以下命令:

    $ ./install.sh
     > Git LFS initialized.
    

    **注:**您可能必须使用 sudo ./install.sh 来安装文件。

  6. 验证安装成功:

    $ git lfs install
    > Git LFS initialized.
    
  7. 如果未看到表示 git lfs install 成功的消息,请联系 GitHub Support。 确保包含操作系统的名称。

配置 Git Large File Storage

安装 [Git LFS] 后,需要将其与仓库中的大文件相关联。

Mac

如果仓库中存在要用于 GitHub 的现有文件,则需要先从仓库中删除它们,然后在本地将其添加到 Git LFS。 更多信息请参阅“将仓库中的文件移动到 Git LFS”。

如果有引用的 Git LFS 文件未成功上传,您将收到一条错误消息。 更多信息请参阅“解决 Git Large File Storage 上传失败”。

  1. 打开 Terminal(终端)。

  2. 将当前工作目录更改为要用于 Git LFS 的现有仓库。

  3. 要将仓库中的文件类型与 Git LFS 相关联,请输入 git lfs track,后跟要自动上传到 Git LFS 的文件扩展名。

    例如,要关联 .psd 文件,请输入以下命令:

    $ git lfs track "*.psd"
    > Adding path *.psd
    

    要与 Git LFS 关联的每个文件类型都需要添加 git lfs track。 此命令将修改仓库的 .gitattributes 文件,并将大文件与 Git LFS 相关联。

    **注意:**我们强烈建议您将本地 .gitattributes 文件提交到仓库中。

    • 依赖与 Git LFS 关联的全局 .gitattributes 文件,可能会导致在参与其他 Git 项目时发生冲突。
    • 在存储库中包含 .gitattributes 文件允许创建复刻或新克隆的人员使用 Git LFS 更轻松地进行协作。
    • 在存储库中包含 .gitattributes 文件允许 Git LFS 对象选择性地包含在 ZIP 文件和压缩包存档中。
  4. 将文件添加到与关联的扩展名相匹配的仓库:

    $ git add path/to/file.psd
    
  5. 提交文件并将其推送到 GitHub:

    $ git commit -m "add file.psd"
    $ git push
    

    您会看到一些有关文件上传的诊断信息:

    > Sending file.psd
    > 44.74 MB / 81.04 MB  55.21 % 14s
    > 64.74 MB / 81.04 MB  79.21 % 3s
    

Windows

如果仓库中存在要用于 GitHub 的现有文件,则需要先从仓库中删除它们,然后在本地将其添加到 Git LFS。 更多信息请参阅“将仓库中的文件移动到 Git LFS”。

如果有引用的 Git LFS 文件未成功上传,您将收到一条错误消息。 更多信息请参阅“解决 Git Large File Storage 上传失败”。

  1. 打开 Git Bash。

  2. 将当前工作目录更改为要用于 Git LFS 的现有仓库。

  3. 要将仓库中的文件类型与 Git LFS 相关联,请输入 git lfs track,后跟要自动上传到 Git LFS 的文件扩展名。

    例如,要关联 .psd 文件,请输入以下命令:

    $ git lfs track "*.psd"
    > Adding path *.psd
    

    要与 Git LFS 关联的每个文件类型都需要添加 git lfs track。 此命令将修改仓库的 .gitattributes 文件,并将大文件与 Git LFS 相关联。

    **注意:**我们强烈建议您将本地 .gitattributes 文件提交到仓库中。

    • 依赖与 Git LFS 关联的全局 .gitattributes 文件,可能会导致在参与其他 Git 项目时发生冲突。
    • 在存储库中包含 .gitattributes 文件允许创建复刻或新克隆的人员使用 Git LFS 更轻松地进行协作。
    • 在存储库中包含 .gitattributes 文件允许 Git LFS 对象选择性地包含在 ZIP 文件和压缩包存档中。
  4. 将文件添加到与关联的扩展名相匹配的仓库:

    $ git add path/to/file.psd
    
  5. 提交文件并将其推送到 GitHub:

    $ git commit -m "add file.psd"
    $ git push
    

    您会看到一些有关文件上传的诊断信息:

    > Sending file.psd
    > 44.74 MB / 81.04 MB  55.21 % 14s
    > 64.74 MB / 81.04 MB  79.21 % 3s
    

Linux

如果仓库中存在要用于 GitHub 的现有文件,则需要先从仓库中删除它们,然后在本地将其添加到 Git LFS。 更多信息请参阅“将仓库中的文件移动到 Git LFS”。

如果有引用的 Git LFS 文件未成功上传,您将收到一条错误消息。 更多信息请参阅“解决 Git Large File Storage 上传失败”。

  1. 打开 Terminal(终端)。

  2. 将当前工作目录更改为要用于 Git LFS 的现有仓库。

  3. 要将仓库中的文件类型与 Git LFS 相关联,请输入 git lfs track,后跟要自动上传到 Git LFS 的文件扩展名。

    例如,要关联 .psd 文件,请输入以下命令:

    $ git lfs track "*.psd"
    > Adding path *.psd
    

    要与 Git LFS 关联的每个文件类型都需要添加 git lfs track。 此命令将修改仓库的 .gitattributes 文件,并将大文件与 Git LFS 相关联。

    **注意:**我们强烈建议您将本地 .gitattributes 文件提交到仓库中。

    • 依赖与 Git LFS 关联的全局 .gitattributes 文件,可能会导致在参与其他 Git 项目时发生冲突。
    • 在存储库中包含 .gitattributes 文件允许创建复刻或新克隆的人员使用 Git LFS 更轻松地进行协作。
    • 在存储库中包含 .gitattributes 文件允许 Git LFS 对象选择性地包含在 ZIP 文件和压缩包存档中。
  4. 将文件添加到与关联的扩展名相匹配的仓库:

    $ git add path/to/file.psd
    
  5. 提交文件并将其推送到 GitHub:

    $ git commit -m "add file.psd"
    $ git push
    

    您会看到一些有关文件上传的诊断信息:

    > Sending file.psd
    > 44.74 MB / 81.04 MB  55.21 % 14s
    > 64.74 MB / 81.04 MB  79.21 % 3s
    

常用命令

基本使用

#配置需要使用 Git LFS 管理的文件
git lfs track "*.pdf" 
#在Git仓库根目录下的 .gitattributes中生成:*.pdf filter=lfs diff=lfs merge=lfs -text;同样可以通过修改.gitattributes文件来配置追踪文件

# 不再使用 Git LFS 管理指定的文件
git lfs untrack "*.pdf"

#查看lfs管理的文件
git lfs track 

# 类似git status,查看当前 Git LFS 对象的状态
git lfs status

# 枚举所有被 Git LFS 管理的文件
git lfs ls-files

# 查看 Git LFS 版本
git lfs version

#git lfs clone通过合并获取 LFS 对象的请求,减少了 LFS API 的调用,并行化 LFS 对象的下载,从而达到显著的速度提升。同样也兼容没有使用 LFS 的仓库。即无论要克隆的仓库是否使用 LFS,都可以使用 git lfs clone 命令来进行克隆。
#目前最新版本的 git clone 已经能够提供与 git lfs clone 一致的性能,因此自 Git LFS 2.3.0 版本起,git lfs clone 已不再推荐使用。
git lfs clone url/ssh

只获取仓库本身,而不获取任何 LFS 对象

GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/user/repo.git
# 或
git -c filter.lfs.smudge= -c filter.lfs.required=false clone https://github.com/user/repo.git

#这两条命令适用于其他git命令;如checkout、ret等

只推送仓库本身,而不推送任何 LFS 对象

#如果当前仓库启用了 LFS,而还需要将该仓库备份至其他不支持 LFS 的 git 服务器,那么可以在 push 时加上 --no-verify 参数来跳过 LFS 对象的提交
git push --no-verify backup master

获取当前 commit 下包含的 LFS 对象的当前版本

#如果起初获取代码时,没有一并获取 LFS 对象,而随后又需要这些被 LFS 管理的文件时,可以单独执行 LFS 命令来获取并签出 LFS 对象:
git lfs fetch
git lfs checkout
# 或
git lfs pull

获取指定时间的版本

#Git LFS 相关命令在获取 LFS 对象时,默认仅会获取该对象当前被引用的版本,如果想要一次获取 LFS 对象的当前及最近版本的话,我们首先需要对最近进行定义:
git config lfs.fetchrecentcommitsdays 7
#7 表示同时下载过去 7 天内的版本(相对于获取的 LFS 对象的时间),该项配置默认值为 0,即不获取过去的版本,而仅获取指定的版本

场景

迁移已有的 git 仓库,需要使用 git lfs 管理

# 重写 master 分支,将历史提交中的 *.zip 都用 git lfs 进行管理
git lfs migrate import --include-ref=master --include="*.zip"

# 重写所有分支及标签,将历史提交中的 *.rar,*.zip 都用 git lfs 进行管理
git lfs migrate import --everything --include="*.rar,*.zip"

注意:

重写历史后的提交需执行 git commit --force
如有迁移至 git lfs 前的仓库的多份拷贝,其他拷贝可能需要执行 git reset --hard origin/master 来重置其本地的分支,注意执行 git reset --hard 命令将会丢失本地的改动。

参考链接

安装 Git Large File Storage

https://zhuanlan.zhihu.com/p/146683392

https://gitee.com/help/articles/4235#article-header5

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:44:34  更:2022-07-21 21:44:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:53:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码