Repo是一个用Python语言开发的命令工作 ,可以更文件地进行多版本库的管理。Repo是对Git进行了一定的封装,简化了对多个Git版本库的管理。对于repo管理的任何一个版本库,都需要使用Git命令进行操作。
每一个repo子命令都可以通过下面的命令获得帮助:
repo help
repo init子命令主要完成检出清单版本库(manifest.git),以及配置Git用户名和邮件地址的工作。
repo sync子命令用于参照清单文件克隆可同步版本库。如果某个项目版本库尚不存在,则执行repo sync命令相当于执行git clone。如果项目版本库已经存在,则相当于执行下面的两个命令:
repo start子命令实际上是对git checkout -b命令的封装。为指定的项目或所有项目(若使用-all参数),以清单文件中为项目认定的分支或里程碑为基础,创建特性分支。特性分支的名称由命令的第一个参数指定。
repo start[--all | …]
repo status子命令实际上是对git diff-index、git diff-files命令的封装,同时显示暂存区的状态和本地文件修改的状态。
repo status […]
repo checkout子命令实际上是对git checkout命令的封装。检出之前由repo start创建的分支。
repo checkout[ …]
repo branches读取各个项目的分支列表并汇总显示。
repo branches […]
repo upload相当于git push,但是又有很大的不同。执行repo upload不是将版本库改动推送到克隆时的远程服务器,而是推送到代码审查服务器(Gerrit)的特殊引用上。代码审核服务器会对推送的提交进行特处理,将新的提交显示为一个待审核的修改集,并进入代码审查流程。只有当审核通过后,才会合并到正式的版本库中。
用法如下:
repo upload [--re --cc] []...
参数:
-h, --help 显示帮助信息。 -t 发送本地分支名称到Gerrit代码审核服务器。 --re=REVIEWERS, --reviewers=REVIEWERS 要求由指定的人员进行审核。 -cc=CC 同时发送通知到如下邮件地址。
如果发现上传后的代码有问题想重新修改,可以在本地继续修改代码,用git add把修改内容加到暂存区,用git commit –amend修改上一次提交,再用repo upload重新上传修订集。这样上传后不会产生新的提交,而是会在原有的提交中新加一个修订集。
repo download命令主要用于代码审核者下载和评估提交的修订。使用repo download命令实际上就是用git fetch获取到对应项目的refs/changes/
repo download {project change [/patchset]}…
repo prune子命令实际上是对git branch -d命令封装,该命令用于扫描项目的各个分支,并删除已经合并的分支。
repo prune […]
— liangjiong.zhou 2013/12/31 03:12
repo forall 可以用来遍历所有git仓库。
repo forall -c command
例:
$ repo forall -c git status #等同 repo status $ repo forall -c git clean -dxf #清除整个repo