目录
一、GIt大文件存储 Git LFS
二、Git LFS的使用
1.初始化
2.将大型文件放进LFS管理
三、整体流程
首先,你已经创建属于你自己的本地库了。以下一大型文件上传为基础,50mb的文件可以直接上传至 AtomGit上面,不需要多讲。
一、GIt大文件存储 Git LFS
Git LFS 作为开源服务,源码及安装方式请参考:Git Large File Storage | Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.https://git-lfs.com/
二、Git LFS的使用
1.初始化
安装好 Git LFS 后,执行git lfs install初始化 git 钩子。
只需为每个用户帐户运行一次。
$ git lfs install Updated
git hooks.
Git LFS initialized.
//下面两行是执行结果
2.将大型文件放进LFS管理
假如想要将 png 文件使用 LFS 管理,在仓库中执行:
git lfs track "*.png",之后正常使用 git 进行提交和推送。png 类型的文件会自动使用LFS管理,不需要额外的操作。
需要注意的是,执行
git lfs track只影响之后加入git仓库的文件,不会影响git仓库中已存在的历史文件。
如果需要将历史的文件(原先已经加入的文件)加入 LFS 管理,需要执行迁移操作。
执行 git ifs ls-files 查看使用LFS管理的文件
$ git lfs ls-files
2da026638a * <文件1>
3176f6f797 * <文件2>
也可以在 设置 - 大文件存储 中,查看并管理仓库中的大文件。
如果想要将仓库中的历史文件使用 LFS 管理,需要执行迁移操作。例如,我们想要将 master 分支中的 png 文件使用LFS管理,那么执行:
git lfs migrate import --include-ref=master --include="*.png"
会看到类似的输出,说明迁移已经完成:
migrate: Sorting commits: ..., done.
migrate: Rewriting commits: 100% (2/2), done.
master 2d2c813aac4b2247e4b79b3721cca45580f15282 -> 5634c182663a24617bd26d0d82a3966686687173
migrate: Updating refs: ..., done.
migrate: checkout: ..., done.
三、整体流程
首先,跟踪所选文件。
git lfs track "*.psd"
例如,我跟踪yolov5-master.zip就会得到一个 .gitattributes文件。
接下来跟踪.gitattributes
git add .gitattributes
最后,推送
git add file.psd
git commit -m "Add design file"
git push origin main
main是你的Current Branch 名。想要推送你必须是在一个文件夹下面,并且这个文件夹在远端是属于一个branch的,这样你才可以上传至这个branch。
成功结果如下:
注意,路径一定是在你克隆的代码库里面。因为克隆的文件夹就位于branch下面,提前将文件(这里是text2)放进这个文件夹中。
上传后AtomGit上的显示。
(Git 报错 Updates were rejected because the remote contains work that you do)
参考文章:Git 报错 Updates were rejected because the remote contains work that you do-CSDN博客)