diff --git "a/Git LFS \345\205\245\351\227\250\346\214\207\345\215\227.md" "b/Git LFS \345\205\245\351\227\250\346\214\207\345\215\227.md" new file mode 100644 index 0000000000000000000000000000000000000000..a7cf655fbf75592f13c721626d607c02534c1b07 --- /dev/null +++ "b/Git LFS \345\205\245\351\227\250\346\214\207\345\215\227.md" @@ -0,0 +1,84 @@ +### Git LFS 简介 + +> CODE CHINA 已支持 Git LFS 功能,该功能免费开放。 +> +Git LFS(Large File Storage,大文件存储)是 Github 开发的一个Git 的扩展,用于实现 Git 对大文件的支持。 +![在这里插入图片描述](https://img-blog.csdnimg.cn/2021032416181974.gif#pic_center) +### 使用目的 +不同于git每次保存diff,对于git来说,如果是模型或者一些设计大文件,改变一点,对于仓库来说会增加很大的体积,不一会就能几个G。 +Git LFS 可以把音乐、图片、视频等指定的任意大文件资源存储在Git仓库之外,减小Git仓库本身的体积,使克隆Git仓库的速度加快,也使得Git不会因为仓库中充满大文件而损失性能。 +### Git LFS 下载和安装 + +> 注意:安装 Git LFS 需要 Git 的版本不低于 1.8.5 +> Git LFS 官网: https://git-lfs.github.com/ +> CODECHINA mirror 过来Git LFS的地址:https://codechina.csdn.net/mirrors/git-lfs/git-lfs + +#### Linux 系统 + +```bash +$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash +$ sudo apt-get install git-lfs +$ git lfs install +``` + +> 运行`git lfs install`,如果显示Git LFS initialized说明安装成功 + +#### MacOS 系统 +1.安装HomeBrew + +```bash +$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +``` +2.安装 Git LFS + +```bash +$ brew install git-lfs +$ git lfs install +``` + #### Windows 系统 +1.下载安装程序 windows installer +2. 运行 windows installer +3. 在命令行执行 `git lfs install` +### 配置 +配置我们要与Git LFS关联的文件类型,此信息将添加到.gitattributes 存储库中的 文件中。 +将文件类型与Git LFS关联的最简单方法是通过 `git lfs track` 命令。 +如将所有 jpg 文件管理到Git LFS: + +```bash +$ git lfs track "*.png" +``` +该 `.gitattributes` 文件已创建,并包含以下信息: + +```bash +*.jpg filter=lfs diff=lfs merge=lfs -text +``` +完美的!从现在开始,LFS将处理此文件。现在,我们可以按照以前的方式将其添加到存储库中。注意,对其他任何更改.gitattributes也必须提交到存储库,就像其他修改一样: + +```bash +$ git add .gitattributes +$ git add design-resources/design.psd +$ git commit -m "Add design file" +``` +### 常用 Git LFS 命令 +查看 git lfs 当前正在跟踪的所有模式的列表 +```bash +$ git lfs track +``` +查看 git lfs 当前跟踪的文件列表 +```bash +$ git lfs ls-files +``` +### 取消跟踪并从LFS 删除文件 +从lfs取消跟踪特定类型的所有文件,并将其从缓存中删除: + +```bash +$ git lfs untrack "*file-type" +$ git rm --cached "*file-type" +``` +如果要将这些文件重新添加到常规git跟踪中并提交,可以执行以下操作: + +```bash +$ git add "*file-type" +$ git commit -m "restore "*file-type" to git from lfs" +``` +