执行 repo sync 后将 git-lfs 中的资源文件 checkout

本文最后更新于:2023年5月3日 凌晨

最近期中考试挺忙的,五一好不容易有一些自己的时间,于是打算重操旧业,搞点有意思的内容,没想到准备阶段就出了新问题,有点跟不上时代了

本次遇到的问题是在执行 repo sync 命令后储存在 git-lfs 中的文件没有被自动 pull 并 checkout 出来,尽管我在 repo init 阶段已经加了 --git-lfs 参数了。

上 google 简单查了查,查到一篇 stackoverflow 的回答,给出的思路是使用 repo forall -c 'git lfs pull' 的方案解决的,意思是在 repo 同步的每一个 git 仓库中都自动执行 git lfs pull 命令,但这个解决方案在我这有两个问题。

  • 仓库的 git-lfs 没有被安装,所以 git-lfs 会直接报错
  • 将整个安装源码一千多个仓库一一执行这些命令的速度太慢了

解决方案也很简单,直接检测每个 git 仓库下是否存在 .lfsconfg 文件,存在的话就执行 git lfs install && git lfs pull

1
repo forall -c 'test -e .lfsconfig && git lfs install && git lfs pull'

执行 repo sync 后将 git-lfs 中的资源文件 checkout
https://zhul.in/2023/05/03/checkout-lfs-file-after-repo-sync/
作者
竹林里有冰
发布于
2023年5月3日
更新于
2023年5月3日
许可协议