当前位置: 首页 > 工具软件 > git-repo > 使用案例 >

git 和 repo

冯阳成
2023-12-01

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 命令参考文档
 类似资料: