之前只是看了 git lfs 的介绍,但是没有上手一试,正好遇到新项目想把测试数据库的数据导出,并存储到 git 项目中, 方便其他开发环境导入。
Ubuntu 上安装 git-lfs
sudo apt install git-lfs
如果未安装,会提示错误。安装引导安装就好。
> git lfs install
fatal: 'lfs' appears to be a git command, but we were not
able to execute it. Maybe git-lfs is broken?
> git-lfs
Command 'git-lfs' not found, but can be installed with:
sudo apt install git-lfs
让已有的 git 项目支持 git-lfs
> git lfs install
Updated git hooks.
Git LFS initialized.
install 成功后,仓库的 pre-push 钩子将被替换和生效。
对大 SQL 文件进行跟踪
> git lfs track "database/sql/data.sql"
Tracking "database/sql/data.sql"
status:
> git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitattributes
database/sql/data.sql
.gitattributes
执行完 git lfs track 之后,会发现根目录下多了一个文件 .gitattributes。
> cat .gitattributes
database/sql/data.sql filter=lfs diff=lfs merge=lfs -text
查看当前的 lfs 的跟踪规则
> git lfs track
Listing tracked patterns
database/sql/data.sql (.gitattributes)
Listing excluded patterns
推送到远端仓库
> git add .gitattributes
> git add database/sql/data.sql
> git commit -a
> git push
Uploading LFS objects: 100% (1/1), 16 KB | 0 B/s, done. Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 12 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 581 bytes | 581.00 KiB/s, done.
Total 6 (delta 2), reused 0 (delta 0)
To codeup.aliyun.com:xxx/example.git
9499383..e3149b8 master -> master
阿里云效 codeup 中查看
可以看到对应的文件被加上了 Git LFS 标签。
同时可以查看所有的大文件,及当前空间使用情况。
Makefile
可以在 Makefile 中添加一行命令自动执行 mysqldump,可以方便的随时导出数据库。
git lfs 版本过低问题
如果在 git push 时提示 git lfs 版本过低,可以通过以下方式升级:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
Could not resolve host: d28dx6y1hfq314.cloudfront.net
如果使用上面方法升级 git lfs 版本失败,报错:
Importing packagecloud gpg key... curl: (6) Could not resolve host: d28dx6y1hfq314.cloudfront.net
可以去 github 下载最新版本的 lfs:
https://github.com/git-lfs/git-lfs/releases
例如,我在 ubuntu 18.04 上可以下载 debian 10 对应的 .deb 安装包。
下载完成后,执行命令:
sudo dpkg -i git-lfs_3.2.0_amd64.deb
即可安装。
参考
https://help.aliyun.com/document_detail/206889.html
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式