Git
Git 旨在处理分布在多个代码库上的大型项目。Android 使用 Git 执行本地操作,例如建立本地分支、提交、对比差异、修改。打造 Android 项目所面临的挑战之一就是确定如何最好地支持外部社区 - 从业余爱好者社区到生产大众消费类设备的大型 OEM。我们希望组件可以替换,并希望有趣的组件能够在 Android 之外自行发展。我们最初决定使用一种分布式修订版本控制系统,经过筛选,最后选中了 Git。
Repo
Repo 可以在必要时整合多个 Git 代码库,将相关内容上传到 Gerrit 修订版本控制系统(https://android-review.googlesource.com),并自动执行 Android 开发工作流程的部分环节。
Repo 分为两部分:第一部分是您从 git-repo-downloads 中下载并安装(https://source.android.google.cn/setup/develop#installing-repo)的 Repo 启动器。这是一个 Python 脚本,该脚本知道如何初始化检出,并可下载第二部分,即 Android 源代码检出中包含的完整 Repo 工具。完整的 Repo 工具默认位于 $SRCDIR/.repo/repo/… 中,它可以从下载的 Repo 启动器接收转发的命令。
Repo 并非用来取代 Git,只是为了让您在 Android 环境中更轻松地使用 Git。它使用清单文件(https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.md)将 Git 项目汇总到 Android 超级项目中。repo 命令是一个可执行的 Python 脚本,您可以将其放在路径中的任何位置。使用 Android 源代码文件时,您可以使用 Repo 执行跨网络操作,例如使用一个 Repo 工作目录。
在大多数情况下,您可以仅使用 Git(不必使用 Repo),或结合使用 Repo 和 Git 命令以组成复杂的命令。不过,使用 Repo 执行基本的跨网络操作可大大简化您的工作。如需详细了解 Repo,请参阅 Repo 命令参考文档、Repo README、可在 Repo 中启用的预上传钩子(测试)以及 AOSP 中的常用文档。
Gerrit
Gerrit 是一个基于网页的代码审核系统(https://gerrit-review.googlesource.com/Documentation/),适用于使用 Git 的项目。Gerrit 允许所有授权用户提交更改(如果这些更改通过代码审核,便会自动纳入到项目中),以此鼓励他们更集中地使用 Git。此外,Gerrit 可以在浏览器中并排显示更改,并支持代码内注释,从而使审核工作变得非常轻松。
安装Repo
Repo 这款工具可让您在 Android 环境中更轻松地使用 Git。请参阅上文的 Repo 概览,了解其用途以及相关文档的链接。
Repo 分为两部分:第一部分是您安装的启动器脚本,它可以与第二部分(即包含在源代码检出中的完整 Repo 工具)通信。如需安装 Repo,请执行以下操作:
确保您的主目录中有一个 bin/ 目录,并且它包含在您的路径中:
mkdir ~/bin
PATH=~/bin:$PATH
下载 Repo 启动器,并确保它可执行:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
如果官方源访问不了,可用清华源替换
https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
更新
repo的运行过程中会尝试访问官方的git源更新自己,如果想使用tuna的镜像源进行更新,可以将如下内容复制到你的~/.bashrc里
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
Repo使用样例
1.repo init 初始化repo工程
repo init -u ssh://192.168.3.162:29418/test-repo/manifest
2.repo sync 同步工程
repo sync
3.repo start 切换分支
根目录执行
repo start project2_dev project2
或者 cd project2 `` 执行
repo start project2_dev
4.git常用操作
git branch -a
git checkout -b xxx
git add xxx
git commit -m xxx
5.repo upload上传修改
6.访问gerrit,查看审核信息,添加审核人等
7.待审核完成后,更改合并到 Gerrit 之后,请更新您的本地工作目录,然后使用 repo prune 来安全移除已过时的主题分支。
repo sync
repo prune
可供参考链接:https://source.android.google.cn/setup/create/coding-tasks