通过 git lfs 将数据库文件加入 git 项目管理

更新日期: 2022-08-04 阅读次数: 3935 字数: 557 分类: Git

之前只是看了 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 标签。

同时可以查看所有的大文件,及当前空间使用情况。

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

tags: Git LFS

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式