嵌入式 Linux C ARM 程序员我爱编程

Android中Repo 常用命令参考

2018-01-24  本文已影响109人  程序手艺人

原文地址
译者:远方的自由
转载请注明出处: http://blog.csdn.net/z2066411585
Repo使用形式如下:

repo <COMMAND> <OPTIONS>

可选元素显示在[]中,例如,许多命令将项目列表作为参数,你可以指定项目列表作为项目的本地源目录的名称列表或路径列表

repo sync [<PROJECT0> <PROJECT1> ... <PROJECTN>]
repo sync [</PATH/TO/PROJECT0> ... </PATH/TO/PROJECTN>]

help


一旦安装了repo,你可以通过运行以下命令的摘要来查找最新的文档:

repo help

你可以通过repo tree 中运行下面命令来获取有关任何命令的信息:

repo help <COMMAND>

例如,下面的命令产生一个描述和repo 的 init 参数选项列表,它初始化当前目录中的repo:

repo help init

init


repo init -u <URL> [<OPTIONS>]

当前目录中安装Repo.将会创建一个.repo目录,其中主要包含用于repo源代码和标准android清单文件的git存储库. repo目录还包含manifest.xml, 它是./repo/maninfests/目录中所选清单的符号链接. 有关更新manifest的说明,请参阅manifest-format.txt.

选项:

注意:对于所有余下的Repo命令,当前工作目录必须是./repo的父目录或父目录的子目录.

sync


下载新的更改并更新本地环境中的工作文件.如果你运行repo sync没有任何参数,它将同步所有项目的文件.
当运行repo sync,这是发生了什么事:

git remote update
git rebase origin/<BRANCH>

执行repo sync成功后,指定项目中代码与远程仓库中代码保持同步.
选项:

upload


repo upload [<PROJECT_LIST>]

对于指定的项目,repo比较本地分支与上次repo sync期间更新的远程分支. Repo将提示你选择一个或多个尚未上传的分支进行审查.选择一个或多个分支后,所选分支上的所有提交将通过https连接传送个gerrit.你需要配置https密码才能启用上传授权.请访问Password Generator生成新的用户名/密码对,以便通过https使用.

当gerrit通过服务器接受到对象数据,它会将每个提交变成一个变化,以便审阅者可以单独评论每个提交.将几个checkpoint提交合并为一个提交,在运行repo上传之前使用git rebase -i.

如果你运行repo upload没有任何参数,它将搜索所有项目的更改上传.
在上传之后对其进行编辑修改,应该使用像git rebase -igit commit --amend来更新你的本地提交.编辑完成后:

# Replacing from branch foo
[ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...
[ 2829 ] ec18b4ba Update proto client to support patch set replacments
# Insert change numbers in the brackets to add a new patch set.
# To create a new change record, leave the brackets empty.

上传完成后,更改将会有一个额外的补丁集.
如果只想上传当前检出的git分支,可以使用标志--current-branch (or --cbr 简写).

diff


repo diff [<PROJECT_LIST>]

在使用git diff的提交和工作树之间显示了突出的变化.

download


repo download <TARGET> <CHANGE>
从审查系统中下载指定的更改,并使其在项目的本地工作目录中可用.
例如,将 change 23823
下载到platform/build目录中

repo download platform/build 23823

repo sync应该有效删除通过repo download检索任何提交.或者,你可以检出远程分支,例如:git checkout m/master.

注意:在Gerrit的网页上发生变化时,以及由于全球所有服务器的复制延迟而导致所有用户的repo download都能够找到它时,会有轻微的镜像延迟.

forall


repo forall [<PROJECT_LIST>] -c <COMMAND>

在每个项目中执行给定的shell命令,以下附加环境变量可通过repo forall

选项:

prune


repo prune [<PROJECT_LIST>]

修改(删除) 已经合并的主分支

start


repo start <BRANCH_NAME> [<PROJECT_LIST>]

从manifest中指定的修订开始,开始一个新的开发分支.
<BRANCH_NAME> 参数应该提供你正试图对项目进行更改的简短说明. 如果你不知道,请考虑使用默认名称.
<PROJECT_LIST>指定哪些项目将参与这个主题分支

注意: 是当前工作目录中项目的有用缩写

status


repo status [<PROJECT_LIST>]

将工作树与临时区域(索引)进行比较,并在指定的每个项目中对该分支(HEAD)上的最近提交进行比较,显示这三个状态之间存在差异的每个文件的摘要.
运行run status 只查看当前分支的状态,状态信息按项目列出.对于项目中的每个文件,使用两个字母代码;
在第一列中,大写字母表示暂存区域与上次提交状态的区别.

字母 含义 描述
- no changer same in HEAD and index
A added not in HEAD, in index
M modified in HEAD, modified in index
D deleted in HEAD, not in index
R renamed not in HEAD, path changed in index
C copied not in HEAD, copied from another in index
T mode changed same content in HEAD and index, mode changed
U unmerged conflict between HEAD and index; resolution required

在第二列中,小写字母表示工作目录与索引的不同之处.

字母 含义 描述
- new/unknown not in index, in work tree
m modified in index, in work tree, modified
d deleted in index, not in work tree
上一篇下一篇

猜你喜欢

热点阅读