Azure Pipelines显式声明checkout开启lfs报错命令不存在问题咨询
问题根因
- Azure Pipelines的
checkout步骤携带lfs: true参数时,内置逻辑会优先尝试自动安装Git LFS,而非直接使用运行环境中已预安装的版本。该自动安装逻辑易受运行用户权限、代理网络限制、临时目录读写权限等因素影响导致安装失败,因此会抛出'lfs' is not a git command的报错,和环境是否预装有Git LFS无直接关联。 - 默认隐式checkout(不手动写
checkout步骤)场景下,流水线不会主动执行LFS拉取,是因为YAML流水线的LFS拉取开关优先级为:UI端YAML LFS配置 > YAML文件内的checkout步骤LFS配置。未开启UI开关时,即使YAML配置了lfs: true也会触发内置的自动安装逻辑,而非直接调用已有的Git LFS工具。
可行配置方案
两种方案二选一即可稳定拉取LFS资源:
方案1:UI配置配合隐式checkout
- 无需在YAML中显式添加
checkout步骤 - 直接在「编辑流水线/触发器>YAML设置」中开启LFS配置,流水线会自动调用环境中预安装的Git LFS执行拉取操作
方案2:纯YAML配置(无需修改UI设置)
如果不想依赖UI侧配置,可以关闭内置LFS拉取逻辑,手动执行拉取命令,彻底规避自动安装逻辑的问题:
- checkout: self lfs: false # 关闭内置LFS逻辑,避免触发自动安装流程 - script: | git lfs install git lfs pull displayName: 手动拉取Git LFS资源
内容的提问来源于stack exchange,提问作者Lyn
相关产品推荐
相关产品推荐

