repo 常用命令汇总——202308

简介: repo 常用命令汇总——202308

1. 下载repo:


使用下面命令,具体版本号参考前面网页中显示的最新版本号。

curl http://git-repo.googlecode.com/files/repo-1.19 > ~/bin/repo


修改执行权限

chmod a+x ~/bin/repo


2. 获取工程repo信息


本地创建一个工程目录,并进去

以下命令下载指定分支(branch)

repo init -u  git://172.16.1.31/manifest.git (git地址) -b master


repo init 作用 : 下载repo并克隆manifest

Options:

-u:指定一个URL,其连接到一个maniest仓库

-m:在manifest仓库中选择一个xml文件

-b:选择一个maniest仓库中的一个特殊的分支

命令repo init 要完成如下操作:

Ø 完成repo工具的完整下载,执行的repo脚本只是引导程序

Ø 克隆清单库manifest.git (地址来自于-u 参数)

Ø 克隆的清单库位于manifest.git中,克隆到本地.repo/manifests.清单.repo/manifest.xml只是符号链接,它指向.repo/manifests/default.xml

Ø 如果manifests中有多个xml文件,repo init 可以任意选择其中一个,默认选择是default.xml


3. 下载代码


repo sync 更新代码到最新的版本

用于参照清单文件.repo/manifest.xml克隆并同步版本库。如果某个项目版本库尚不存在,则执行repo sync 命令相当于执行git clone,如果项目版本库已经存在,则相当于执行下面的两条指令:

git remote update

相当于对每一个remote源执行了fetch操作

git rebase origin/branch

针对当前分支的跟踪分支执行rebase操作。


4. 创建并切换本地分支


repo start

Usage: repo start <newbranchname> [--all | <project>...]

刚克隆下来的代码是没有分支的,repo start 实际是对git checkout -b 命令的封装。

若使用-all参数,以清单文件中为设定的分支,创建特性分支。这条指令与git checkout -b 还是有很大的区别的,git checkout -b 是在当前所在的分支的基础上

创建特性分支,而repo start是在清单文件设定分支的基础上创建特性分支。

Options:

-h, --help 显示帮助信息

–all 在所有工程中都新建一个分支

例: repo start stable --all


5. repo forall


迭代器,可以在所有指定的项目中执行同一个shell指令

-c command,对所有项目执行一个command命令,这个命令 相当 好用;

:repo forall -c git status 只显示每个工程的状态,但是不显示工程名和 repo status

-p 在输出之前显示项目名称

例: repo forall -p -c git status 先输出工程名之后,再执行命令

-v(—verbose) 显示命令错误信息

-e(—abort-on-errors) 中止如果命令没有成功退出

  • REPO_PROJECT:指定项目的名称
  • REPO_PATH:指定项目在工作区的相对路径
  • REPO_REMOTE:指定项目远程仓库的名称
  • REPO_LREV:指定项目最后一次提交服务器仓库对应的哈希值
  • REPO_RREV:指定项目在克隆时的指定分支,manifest里的revision属性
  • 另外,如果-c后面所带的shell指令中有上述环境变量,则需要用单引号把shell指令括起来。
  • :repo forall –c 'echo $REPO_PROJECT' 输出工程名

之前git的各种命令都可以在通过这个命令在各个工程中执行。

例 merge(合并多个分支)

把所有项目多切换到master分支,执行以下指令将topic分支合并到master分支

repo forall –p –c git merge topic

      例:本地每个工程都新建一个分支并跟踪远程的一个分支
       repo forall -p -c git checkout -b  abc —track origin/abc
      例:tag(打标签)
       repo forall -p –c git tag crane-stable-1.6
      例:remote(设置远程仓库)
        repo forall -p –c ‘git remote add korgssh://xiong@172.16.31/$REPO_PROJECT.git’
      例:本地每个工程都创建一个git 分支
       repo forall -p –c git branch crane-dev
       repo forall  -p –c git checkout –b crane-dev
    例:所有工程中的改动全部回退
    repo forall -p -c git reset --hard HEAD

6. repo upload


Usage: repo upload [--re --cc] [<project>]...

描述:

repo upload 命令是用来发送改变到Gerrit 代码审核系统中去。它搜索topic branches(当前话题分支)在本地工程中还未通过review公开,如果多个topic branches存在, repo会打开一个editor(编辑工具)让用户选择那个分支去上传。

repo upload 搜索在所有工程可以上传的改动在命令行中显示出来,(Projects 参数)工程可以指定名字或者本地工程的相对路径或者绝对路径,如果没有指定,那么会在所有工程中搜索所有的可以上传的改动。

如果—reviewers 或者 —cc选项被忽略啦,那些邮件会被发送到用户各自的列表中(those emails are added to

the respective list of users),而且电子邮件会被发送给任何新用户.

—reviewers 指定的必须是已经在代码审核系统中注册过的用户,否则upload会失败


上传修改的代码 ,如果你本地的代码有所修改,那么在运行 repo sync 的时候,会提示你上传修改的代码,所有修改的代码分支会上传到 Gerrit (基于web 的代码review 系统), Gerrit 受到上传的代码,会转换为一个个变更,从而可以让人们来review 修改的代码。

-t 提交当前分支名到Gerrit代码评审系统

–re=REVIEWERS, --reviewers=REVIEWERS 让指定的人来审核

—cc=CC 同时发送邮件

—br=BRANCH 分支上传

-d, --draft 如果指定分支,upload as a draft.(像汇票一样上传?)

-D BRANCH, --destination=BRANCH, --dest=BRANCH 上传到指定分支等待审核

–no-verify Do not run the upload hook.(不运行upload 挂钩)

–verify Run the upload hook without prompting.不经过提示就上传挂钩


7. repo list


列出工程和他们项目的目录

Options:

-h, --help 查看帮助信息

-f, —fullpath 查看工程的完整路径

-n, --name-only 查看工程的名字

-p, --path-only 查看工程路径名字


8. repo info


获取manifest branch 信息,当前分支或者是没合并的分支

Usage: repo info [-dl] [-o [-b]] [<project>...]

Options:

-h, --help show this help message and exit

-d, —diff 显示远程分支中的完整的信息和提交记录

-o, —overview 显示所有本地记录的概略

-b, --current-branch consider only checked out branches

-l, --local-only Disable all remote operations


9. repo help


可以使用repo help 关键词来查看帮助信息,

如:repo help info

相关文章
|
XML 开发工具 Android开发
Repo工作原理及常用命令总结——2023.07(上)
Repo工作原理及常用命令总结——2023.07(上)
1411 0
|
XML 开发工具 Android开发
Repo工作原理及常用命令总结——2023.07(下)
Repo工作原理及常用命令总结——2023.07(下)
1984 0
|
4月前
|
项目管理 开发工具 Android开发
repo跟git的关系
Repo与Git不是替代关系,而是相互补充。Git关注于单个仓库的版本控制,而Repo在此基础上提供了一套管理多个Git仓库的框架,特别适合处理大规模、多组件协同开发的项目。通过Repo,开发者可以更高效地处理复杂的项目结构,同时享受Git带来的版本控制优势,两者结合,为大型软件项目管理提供了强大的支撑。
191 1
|
4月前
|
存储 Linux Android开发
Android底层:通熟易懂分析binder:1.binder准备工作
本文详细介绍了Android Binder机制的准备工作,包括打开Binder驱动、内存映射(mmap)、启动Binder主线程等内容。通过分析系统调用和进程与驱动层的通信,解释了Binder如何实现进程间通信。文章还探讨了Binder主线程的启动流程及其在进程通信中的作用,最后总结了Binder准备工作的调用时机和重要性。
Android底层:通熟易懂分析binder:1.binder准备工作
|
5月前
|
Android开发 UED 开发者
Android经典实战之WindowManager和创建系统悬浮窗
本文详细介绍了Android系统服务`WindowManager`,包括其主要功能和工作原理,并提供了创建系统悬浮窗的完整步骤。通过示例代码,展示了如何添加权限、请求权限、实现悬浮窗口及最佳实践,帮助开发者轻松掌握悬浮窗开发技巧。
707 1
|
6月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
467 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
6月前
|
Android开发 Docker 容器
docker中编译android aosp源码,出现Build sandboxing disabled due to nsjail error
在使用Docker编译Android AOSP源码时,如果遇到"Build sandboxing disabled due to nsjail error"的错误,可以通过在docker run命令中添加`--privileged`参数来解决权限不足的问题。
1236 1
|
9月前
|
传感器 编解码 Linux
V4L2框架 | MIPI Camera指令调试笔记
V4L2框架 | MIPI Camera指令调试笔记
3889 2
|
9月前
|
Shell
全志平台A40I 读写寄存器操作
全志平台A40I 读写寄存器操作
170 0
|
9月前
|
XML 存储 Android开发
Android系统 添加动态控制USB TP触摸方向、触摸唤醒
Android系统 添加动态控制USB TP触摸方向、触摸唤醒
313 0

热门文章

最新文章