前言
Android 使用 Git 作为代码管理工具,开发了 Gerrit 进行代码审核以便更好的对代码进行集中式管理,还开发了 repo 命令行工具,实际上python指令对git的一层封装,对 git 部分命令封装,将百多个 git 库有效的进行组织,因为源码仓库数量庞大,使用git进行管理会带来很多不便,这里repo就体现了其优越性。
一、安装
创建目录和修改环境变量
$ mkdir ~/bin
$ PATH=~/bin:$PATH
下载repo代码
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
二、帮助
repo help
查询具体命令的帮助
repo help <COMMAND>
Repo 仓库状态
repo help init
状态
repo status .
三、初始化
$ repo init -u <URL> [<OPTIONS>]
示例
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
repo init -u https://android.googlesource.com/platform/manifest
这个命令会在当前文件夹创建一个 .repo/ 文件夹,它包含
- repo/ : 其实是一个repo的python源码
- manifest.xml : 工作树的主配置文件,不要编辑这个文件
- projects/ : 每个git工程的 .git结构
- local_manifest.xml : 这个文件不是repo创建的,你可以创建这个文件来代替主配置文件,也就是临时测试用用
选项:
- -u: 指定manifest仓库地址
- -m: 选择仓库中某个manifest文件,如果没有设置,就使用default.xml
- -b: 指定一个分支或修正版本
四、sync 同步所有项目文件
repo sync [project-list]
下载新的更改并更新本地环境中的工作文件。如果您在未使用任何参数的情况下运行 repo sync,则该操作会同步所有项目的文件。
运行 repo sync 后,将出现以下情况:
-
如果目标项目从未同步过,则 repo sync 相当于 git clone。远程代码库中的所有分支都会复制到本地项目目录中。
-
如果目标项目以前同步过,则 repo sync 相当于以下命令:
git remote update
git rebase origin/branch
其中 branch 是本地项目目录中当前已检出的分支。如果本地分支没有在跟踪远程代码库中的分支,则相应项目不会发生任何同步。 -
如果 git rebase 操作导致合并冲突,请使用常规 Git 命令(例如 git rebase --continue)来解决冲突。
repo sync 运行成功后,指定项目中的代码即处于最新状态,已与远程代码库中的代码同步。
选项:
- -j

最低0.47元/天 解锁文章

787

被折叠的 条评论
为什么被折叠?



