git 和 repo

git 和 repo

1 Git 和 git

Git 是版本控制系统,我们使用 git 工具进行代码仓库和分支的管理。比如我可以使用 git clone 从远程仓库的一个分支下载代码到本地,使用 git push 将本地(仓库)分支推到远程(仓库)分支,更多关于git使用可以参考progit

2 andoird 版本管理

Google 将 android 源码拆分成许多个 Git 仓库,我们知道每一个 git 仓库下有 .git 文件

hinzer@ubuntu:android-10$ find -name ".git"
./developers/demos/.git
./developers/build/.git
./developers/samples/android/.git
./.repo/repo/.git
./.repo/manifests/.git
./cts/.git
./platform_testing/.git
./prebuilts/go/linux-x86/.git
./prebuilts/go/darwin-x86/.git
./prebuilts/build-tools/.git
./prebuilts/clang/host/linux-x86/.git
./prebuilts/clang/host/darwin-x86/.git
./prebuilts/checkcolor/.git
./prebuilts/android-emulator/.git
./prebuilts/asuite/.git
./prebuilts/gradle-plugin/.git
./prebuilts/manifest-merger/.git
^C

3 Repo 和 repo

然后 android 使用一个 Repo 仓库对这些拆分开来的 Git 仓库集中起来进行管理,在源码根目录下有一个 .repo 文件,其中 manifest.xml 是一个清单文件,记录了 远程分支/本地分支/本地目录 对应关系。

hinzer@ubuntu:android-10$ tree .repo -L 1
.repo
├── manifests       # git仓库,清单文件列表
├── manifests.git
├── manifest.xml     # 重要,当前清单文件的指向!!
├── project.list
├── project-objects
├── projects
└── repo           # git仓库,包含repo运行的所有脚本

5 directories, 2 fileso

还有一个 repo 工具(通过 repo init 来初始化 Repo 仓库),这是一个 python 写的脚本,可以直接阅读源码(也就是可执行文件的位置)查看代码逻辑。

hinzer@ubuntu:android-10$ whereis repo
repo: /home/hinzer/bin/repo
hinzer@ubuntu:android-10$ cat /home/hinzer/bin/repo
...
...

4 工具集举例

  • Repo和Git: Repo 并非用来取代 Git,只是为了让您在 Android 环境中更轻松地使用 Git。一般我们使用 repo 命令建立 Repo 仓库,同步 android 源码;使用 git 命令对我们修改的其中一个模块提交。
  • Gerrit平台: 线上系统,用于代码审核,也方便查看别人提交的patch。
  • OpenGrok: 线上系统,在线阅读源码的利器。
  • Android Studio: 用于开发 Android 应用的官方集成开发环境 (IDE)。

5 References

  1. Git 文档
  2. Repo介绍
  3. Repo 命令参考文档
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hinzer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值