Repo是干什么的?
用来统一管理Android源代码的工具
Repo命令
核心形式:repo <COMMAND> <OPTIONS>
列如:
- repo sync 同步该仓库
- repo sync sdk 同步sdk项目
- repo init -u https://android.googlesource.com/platform/manifest 同步最新的Android源码
repo help
帮助我们查询某一条repo命令已经如何使用。
repo help使用方式:repo help <COMMAND>,比如
**repo help init: ** 会在命令行打印出repo init 可以选择的选项,以及这些选项所代表的意义。
repo init
在当前文件夹下安装Repo,同时会创建一个.repo的隐藏文件夹,该文件夹里面包含了Repo的源代码Git仓库以及相应的Android manifest文件
-u 选项用以指定Repo源码所在的仓库地址.
-b 选项可以用来指定源码树中特定的branch.
repo sync
同步本地Repo。如果不添加任何选项则代表同步Repo中的所有项目。
使用该命令时需要注意:
- 如果本地Repo从来没有同步过,那么此命令的执行效果如果git clone,也就是从远程仓库中拉取源代码。
- 如果已经同步过,那么此命令的执行效果就是先执行git remote update 从远程仓库中抓取更新,然后执行git rebase origin/<BRANCH> 丢弃本地的工作进度转而追踪最新的<BRANCH>进度,<BRANCH>是指定的远程仓库代码树中的分支。
repo upload
比较本地分支与上一次同步之后的远程分支
repo diff
用以显示本地提交所修改的变动
repo download
命令 repo download <TARGET> <CHANGE>
用以下载远程仓库中的变动,并将其应用在本地的Repo项目中。
如:repo download platform/build 23823 会从下载远程仓库中23823变动,便将其应用在本地仓库的platform项目中的build模块。
repo forall
命令 repo forall [<PROJECT_LIST>] -c <COMMAND>
在该仓库所有的项目中执行<COMMAND>指令
repo prune
删除在本地已有但是在远程不存在的分支
repo start
命令 repo start <BRANCH_NAME> [<PROJECT_LIST>]
在本地开始一个新的分支
<BRANCH_NAME> 代表新的分支名
<PROJECT_LIST> 代表加入到新分支的项目
repo status
命令 repo status [<PROJECT_LIST>]
用以显示本地工作栈中每个项目的工作状态,比如删除-d,修改-m.