repo拉取LineageOS源码仅取最新commit不支持--depth=1如何解决
LineageOS 源码浅克隆(--depth=1)不生效解决方案
正确操作步骤
1. 初始化阶段指定浅克隆参数
--depth参数必须在repo init环节传入,仅在repo sync时添加该参数不会生效,参考初始化命令:
repo init -u https://github.com/LineageOS/android.git -b 你需要的目标分支名 --depth=1
示例中
-b参数后替换为你要拉取的LineageOS版本分支,比如lineage-21.0、lineage-20.0即可。
2. 同步阶段添加配套参数
初始化完成后执行同步操作时,需要追加额外参数避免拉取完整历史数据:
repo sync -c --no-clone-bundle --current-branch --no-tags -j$(nproc)
各参数作用说明:
-c/--current-branch:仅拉取当前分支的代码,不获取其他分支内容--no-clone-bundle:禁用预打包的完整bundle包下载,避免强制拉取全量提交历史--no-tags:不拉取所有标签信息,进一步减少下载体积-j$(nproc):自动匹配CPU核心数设置并行下载线程,提升拉取速度
3. 已有仓库的处理方案
如果之前已经在当前目录执行过完整克隆操作,直接重新添加--depth参数不会生效,推荐直接新建空白工作目录,重新执行上述init+sync流程即可。如果需要保留现有工作目录,需要对所有子git仓库单独执行git fetch --depth=1后清理历史提交,操作复杂度较高,非必要不推荐。
常见异常排查
- 无需修改repo工具的源码,官方原生稳定版repo已经完整支持
--depth参数,90%以上的不生效问题都是参数位置错误导致 - 如果你使用第三方镜像站拉取源码,部分镜像可能不支持浅克隆协议,切换到LineageOS官方源即可解决
内容的提问来源于stack exchange,提问作者PranshuTheGamer
相关产品推荐
相关产品推荐

