赞
踩
repo --trace init -u https://android.googlesource.com/platform/manifest -b branch_name -m default.xml
初始化reporepo sync
同步代码,类似于 pullrepo upload dev
push dev 分支到远程仓库repo branch或repo branches
列出分支repo status
状态查询repo diff
查看修改repo forall -c 'git reset --hard HEAD;git clean -df;git rebase --abort'
撤销整个工程的本地修改repo forall -c 'git branch master'
切换整个工程模块的分支repo forall -c 'git pull projectname'
更新整个工程模块的代码repo与git命令对照表
| repo命令 | 等同git命令 | 备注 |
| ------------- | --------------------- |
| repo init -u | 无 | 初始化 |
| repo sync | git pull | 同步代码 |
| repo upload | git push | 上传代码 |
| repo forall | 无 | 多仓执行 |
| repo start | git checkout -b | 创建并切换分支 |
| repo checkout | git checkout | 切换分支 |
| repo status | git status | 状态查询 |
| repo branches | git branch | 分支查询 |
| repo diff | git diff | 文件对比 |
| repo prune | git remote prune origin | 删除合并分支 |
| repo stage –i | git add --interactive | 添加文件到暂存区 |
| repo abandon | git branch -D | 删除分支 |
| repo version | 无 | 查看版本号 |
repo help
查看帮忙文档repo help sync
查看 sync 帮忙文档举例:
repo --trace init -u https://android.googlesource.com/platform/manifest -b branch_name -m default.xml && repo sync && repo start branch_name --all
–trace:查看repo背后的具体操作。
-u: 指定Manifest库的Git访问路径。
-m: 指定要使用的Manifest文件。
-b: 指定要使用Manifest仓库中的某个特定分支。
下载 https://android.googlesource.com/platform/manifest 到 .repo/manifests 目录下
clone .repo/manifests/default.xml 里的所有 git 仓库。可以有多个 xml 文件,通过 -m 指定
init之后,会生成 .repo 目录,内容如下
tree .repo -L 1
.repo
├── manifest.xml -> manifests/default.xml
├── manifests
├── manifests.git
├── project-objects
├── project.list
├── projects
└── repo
5 directories, 2 files
git remote update && git rebase origin/<branch>
repo start
是对 git checkout -b
命令的封装git checkout -b
是在当前所在的分支的基础上创建特性分支,而repo start
是在清单文件中设定的分支的基础上创建特性分支
repo start stable --all
(所有项目)repo start stable platform/build platform/bionic
可以指定项目repo forall [<PROJECT_LIST>] -c <COMMAND>
-c
:要运行的命令和参数。此命令会通过 /bin/sh 进行求值,它之后的任何参数都将作为 shell 位置参数传递。-p
:在指定命令输出结果之前显示项目标头。这通过以下方式实现:将管道绑定到命令的 stdin、stdout 和 sterr 流,然后通过管道将所有输出结果传输到一个页面调度会话中显示的连续流中。-v
:显示该命令向 stderr 写入的消息。<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote />
<default remote="origin" revision="master" sync-j="4" />
<project />
<project />
<project />
......
</manifest>
manifest
元素xml 文件的根元素remote
元素
default
元素
revision
:Git 分支的名字。如果 project 元素没有指定 revision 属性,那么就使用 default 元素的该属性。revision 属性的值可以是一个 git branch,git tag,也可以是一个 commit id。sync-j
:sync 的时候,并行工作的任务数。sync-c
:如果设置为 true,则在同步代码的时候,将只会同步 project 元素中 revision 属性中指定的分支。如果 project 元素没有指定 revision 属性,则使用 default 元素的 revision 属性。project
元素
name
:git project 的名字,path
:该 project 的本地工作区的路径,revision
:见 default 标签描述git-repo
git peer-review
,将代码以合并请求的方式贡献到服务端。git-repo 与 Android repo
Android 采用 Gerrit 提供代码评审服务,并且开发了一个客户端工具 repo,实现多仓库管理。git-repo 实现和安卓 repo 使用习惯上的兼容,两者的差异如下:
git clone https://gerrit.googlesource.com/git-repo
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。