前言
某Y最近在往github上倒腾点东西,想着分享一些code和data。然而遇到了一系列很蛋疼的问题!首先,大于25M的文件无法直接通过拖拽上传,必须使用Git-LFS的服务!其次,在某Y倒腾了好久终于成功使用Git-LFS后才发现,免费空间只有1GB!对比Google Drive的免费15GB。。。然而这还不是重点!google drive只需要20刀每年就可以升级至100GB!反观Git-LFS,5刀每月从1GB升级至50GB。。。好嘛,这个翻了50倍呢😂😂😂不过既然踩了那么多坑研究的东西,还是在这分享给大家一些使用心得吧
Installation
Git LFS (Git Large File Storage)是一种用来存储,传输大型数据的开源Git延展服务。由于其安装默认在root路径中进行,安装者需具备root权限才可以安装。仅管其也提供了python安装的途径(使用--user即可安装在local路径下),但是以这种方式安装的git-lfs只能用来查看文件,无法进行上传存储等操作!
为了能够在local user下安装真正可以用的git-lfs,某Y在一通折腾后找到了方法!
首先,我们需要在其github主页上下载安装文件包Linux AMD64
。解压后我们可以看到四个文件
git-lfs
CHANGELOG.md
README.md
install.sh
直接运行bash install.sh
会报错,提示需要sudo权限。此时,我们只需要用文本编辑器打开install.sh,将prefix后面的路径修改为local user下的自定义路径,保存后再bash即可完美运行!!!安装好后记得将刚才修改的路径添加到PATH
变量中
export PATH=$PATH:your_path
输入下面命令即可检查是否顺利安装
git lfs install
How to use git-lfs
接下来我们以上传一个本地.zip文件到github上的个人repository为例详细阐述git-lfs的使用过程
1) Track your file
git lfs track "*.zip"
这里有两点一定一定要注意:
- 待追踪的文件名一定要用双引号标出。
- 如果出现报错
Not a git repository.
,输入命令git init
对该文件夹下的.git文件进行初始化。
此时,我们可以看到屏幕输出结果为
Tracking "*.zip"
2) Add tracking file to git
同时我们可以在当前文件夹里找到一个新生成的隐藏文件.gitattributes。该文件里记录了需要追踪的文件类型。接下来我们要做的就是将这个文件加入到git里来确保会对这里类型文件追踪
git add .gitattributes
3) Add data and topics to git
完成后我们开始利用git进行文件上传
git add DFC15_multilabel.zip
git commit -m "upload dataset"
注意,如果上传文件较多的话可以用下面的命令替换上面的第一行命令(搜索会遍历当前文件夹集所有的子文件夹!)
git add *.zip
完成后可以看到待上传的文件信息以及该上传任务的topics:
[master (root-commit) 570e904] upload dataset
2 files changed, 1 insertion(+)
create mode 100644 .gitattributes
create mode 100644 DFC15_multilabel.zip
4) Commit to remote repository via git
在上传前一定记得设定origin,也就是你所希望上传到的repository路径(以.git结尾)
git remote add origin https://github.com/Hua-YS/DFC15_multilabel.git
git push origin master
此时会需要输入github的用户名(不是登录名!)和密码
Username for 'https://github.com:Hua-YS'
Password for 'https://Hua-YS@github.com:'
完成后剩下的就是等待啦😆😆😆不过需要注意的是每个文件夹中文件数量不能超过1000,否则会给出如下提示
对的,系统会给你自动砍掉超出数量的文件!因此在文件数量较多的时候建议以压缩包的形式上传。
总结
去Google Drive重新上传一遍了。。。