使用 flock 解决 Git `unable to read tree` 问题
在CI/CD环境中,多个进程或脚本并发操作同一个Git仓库时,常因元数据损坏或锁冲突导致“unable to read tree”错误。Git并非为高并发本地操作设计,因此需要解决并发问题。有效的方法是通过加锁机制让Git操作串行执行,flock工具为此提供了简单高效的解决方案。 flock属于util-linux套件,大多数Linux发行版已预装,若未安装可通过apt或yum等包管理器安装。macOS默认不包含flock,但可通过Homebrew安装兼容版本。在CI服务如GitHub Actions中,可在任务步骤中预先安装flock以确保可用性。 使用flock时,基本语法为