注意: 几乎每个刚接触企业级 Git 项目(尤其是 Gerrit)的新手,都会经历这样一个困惑时刻: '我明明下载了 100 多兆,为什么文件夹是空的?是不是网络出问题了?是不是权限不够?'
场景重现
你执行了这行命令:
git clone "http://[email protected]:8089/a/XbhSystemUI"
终端显示下载完成:
Receiving objects: 100% (59686/59686), 158.29 MiB | 661.00 KiB/s, done.
然后输入:
cd XbhSystemUI ls
结果……空空如也,连个 .git 文件夹都看不见(其实它在,只是 ls 默认不显示隐藏文件)。
别担心——问题不在你,而在 Git 的'默认行为'和项目的'特殊结构'。
原理分析:把 Git 仓库想象成多层保险柜
想象一下,公司有一个巨大的保险柜,里面存着所有版本的项目代码。这个保险柜有很多抽屉,每个抽屉代表一个分支:
- 抽屉 A:叫
master(默认抽屉) - 抽屉 B:叫
develop-5.0 - 抽屉 C:叫
develop-6.1
当你执行 git clone,相当于复制了整个保险柜到你本地,但只自动打开了'默认抽屉'(通常是 master)给你看。
而问题就出在这里——你们公司的'默认抽屉'(master)是空的!或者只放了一张纸条:'请去 develop-5.0 抽屉拿代码'。所以你看到的是空的,但其实其他抽屉里塞满了代码!
为什么 master 是空的?
非常正常!尤其是在使用 Gerrit 的 Android 或嵌入式项目中。
1. master 只用于最终发布
- 日常开发从来不在
master上进行; - 它可能几个月甚至几年才更新一次;
- 平时就是个空壳或只有 README。
2. 真正的代码在 develop-xxx 分支里
比如你看到的这些:
develop-5.0→ 给 Android 5.0 设备用的develop-a311d2h-nearhub→ 给某款会议平板定制的develop-gen-common→ 通用功能模块
这些才是工程师每天写代码的地方!
3. Gerrit 鼓励分支隔离
Gerrit 是 Google 开源的代码审查系统,要求每个功能/客户/平台都有独立分支,提交必须经过审核才能合入,主干保持干净稳定。
所以,'clone 后看不到代码'不是 bug,而是这类项目的标准操作流程。
正确打开方式:如何看到真正的代码?
第一步:看看有哪些抽屉(分支)
进入项目目录后,运行:
git branch -a

