You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

repo同步trusty代码后.git为符号链接、git log为空的原因

问题相关现象

克隆Trusty代码的常规操作步骤:

mkdir trusty; cd trusty
repo init -u https://android.googlesource.com/trusty/manifest -b master
repo sync -c

操作完成后执行git log返回空结果,排查发现仓库下每个Git项目的.git文件夹不是实体目录,而是指向.repo目录下对应项目路径的符号链接,示例如下:

cd $(Repo_root)/external/linux
ls
# 输出包含如下软链接条目:.git -> ../../.repo/projects/external/linux.git/
原因说明

.git为符号链接是Repo工具的默认正常设计,不属于故障

  • Repo是安卓生态(含Trusty项目)通用的多Git仓库管理工具,v1.13及之后版本默认开启工作树存储优化模式:所有子项目的Git对象库、引用记录、配置等核心元数据,全部统一存放在仓库根目录的.repo/projects/路径下集中管理,避免多工作树、多分支场景下重复存储相同Git对象,可大幅降低同步后的磁盘占用。工作区每个子项目路径下仅存放实际源码文件,.git通过软链接指向.repo下对应的真实仓库路径,配合Git的工作树配置,即可在子项目路径下正常执行各类Git命令。
  • 执行git log返回空结果通常有两类原因:
    • 在Repo根目录直接执行git log:Repo根目录本身不属于任何Git工作树,没有对应的Git仓库上下文,无法正常读取提交记录。需要先进入具体子项目目录再执行Git命令,或通过repo forall批量对所有子项目执行Git操作。
    • 进入子项目目录后执行git log仍为空:repo sync附加的-c是--current-branch参数缩写,同步时仅拉取manifest指定分支的提交,不会拉取其他分支内容,部分版本默认配置下仅拉取最新提交快照、不携带全量历史。可去掉-c参数重新同步,或在对应子项目下执行git fetch --unshallow拉取全量提交历史后,即可正常查看日志。

内容的提问来源于stack exchange,提问作者Padmanabha V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:09:15