|
|
### 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"
|
|
|
```
|
|
|
|
|
|
> 感谢 @BaiXuePrincess 贡献的关于 Git-LFS 的帮助文档
|
|
|
>
|
|
|
> 项目地址: https://codechina.csdn.net/BaiXuePrincess/git-lfs |
|
|
\ No newline at end of file |