repo 常用命令汇总——202308

文章目录

      • 1. 下载repo:
      • 2. 获取工程repo信息
      • 3. 下载代码
      • 4. 创建并切换本地分支
      • 5. repo forall
      • 6. repo upload
      • 7. repo list
      • 8. repo info
      • 9. repo help

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-devrepo 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/50714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

clickonce 发布release和debug版本的区别

ClickOnce 是用于部署和更新.NET应用程序的技术&#xff0c;无论发布 Release 版本还是 Debug 版本&#xff0c;ClickOnce 的基本机制是相同的。然而&#xff0c;发布 Release 版本和 Debug 版本之间有一些关键的区别和注意事项&#xff1a; 1. **编译方式&#xff1a;** Debu…

让智慧城市更进一步,无人机解决方案全面应用

在城市规划中&#xff0c;无人机正在颠覆传统的操作和思维方式。这种技术不仅改变了城市管理获取和分析信息的方式&#xff0c;还提供了前所未有的视角&#xff0c;使城市管理能够更加明智地制定策略。 1. 数据采集的新纪元&#xff1a; 城市规划的核心在于数据的收集和分析。…

【LeetCode动态规划】详解买卖票I~IV,经典dp题型买

给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。…

matlab面向对象

一、面向对象编程 1.1 面向过程与面向对象 区别&#xff1a; 面向过程的核心是一系列函数&#xff0c;执行过程是依次使用每个函数面向对象的核心是对象&#xff08;类&#xff09;及其属性、方法&#xff0c;每个对象根据需求执行自己的方法以解决问题 对象&#xff1a;单个…

数组和指针练习(3)

题目&#xff1a; int main() { int a[5][5]; int(*p)[4]; p a; printf( "%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]); return 0; } 思路分析&#xff1a; int(*p)[4]; 定义了指针变量p是一个数组指针&#xff0c;且该数组指…

ONLYOFFICE 文档如何与 Alfresco 进行集成

ONLYOFFICE 文档是一款开源办公套件&#xff0c;其是包含文本文档、电子表格、演示文稿、数字表单、PDF 查看器和转换工具的协作性编辑工具。要在 Alfresco 中使用 ONLYOFFICE 协作功能&#xff0c;可以将他们连接集成。阅读本文&#xff0c;了解这如何实现。 关于 ONLYOFFICE…

USB Type-C端口集成式ESD静电保护方案 安全低成本

Type-C端口是根据USB3.x和USB4协议传输数据的&#xff0c;很容易受到电气过载&#xff08;EOS&#xff09;和静电放电&#xff08;ESD&#xff09;事件的影响。由于Type-C支持随意热插拔功能&#xff0c;其内部高集成度的芯片&#xff0c;更容易受到人体静电放电的伤害和损坏。…

后端开发12.商品模块

概述 简介 商品模块这个设计的非常复杂 效果图 数据库

LVS集群 (四十四)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、集群概述 1. 负载均衡技术类型 2. 负载均衡实现方式 二、LVS结构 三、LVS工作模式 四、LVS负载均衡算法 1. 静态负载均衡 2. 动态负载均衡 五、ipvsadm命令详…

五家项目进度管理工具,哪家好?

项目进度管理十分依赖项目经理对于项目信息的掌握程度&#xff0c;数字化工具可以很好的解决项目信息不统一的问题。一款好用的项目进度十分重要。目前市面上项目进度管理工具哪家好&#xff1f; 1、Zoho Projects&#xff1b;2、Microsoft Project&#xff1b;3、Trello&#…

34.SpringMVC获取请求参数

SpringMVC获取请求参数 通过ServletAPI获取 将HttpServletRequest作为控制器方法的形参&#xff0c;此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象 index.html <form th:action"{/test/param}" method"post">用户名&#…

机器学习笔记之优化算法(十六)梯度下降法在强凸函数上的收敛性证明

机器学习笔记之优化算法——梯度下降法在强凸函数上的收敛性证明 引言回顾&#xff1a;凸函数与强凸函数梯度下降法&#xff1a;凸函数上的收敛性分析 关于白老爹定理的一些新的认识梯度下降法在强凸函数上的收敛性收敛性定理介绍结论分析证明过程 引言 本节将介绍&#xff1a…

Jenkins的定时任务配置

jenkins配置定时任务位置(点击日程表的问好可查看语法配置) jenkins的定时任务的参数 # 定时任务参数(每个参数之间使用tab键或空格分隔)MINUTE HOUR DOM MONTH DOW 参数解释取值范围 MINUTE 分钟0-59HOUR小时0-23DOM一月的天数1-31MONTH月份1-12DOW 一周的天数0…

【Linux】GNOME图形化界面安装

Linux下具有多种图形化界面&#xff0c;每种图形化界面具有不同的功能&#xff0c;在这里我们安装的是GNOME。 1、 挂载yum源 挂载之前首先确保使用ISO映像文件 2.挂载之前先在/mnt下面创建一个cdrom目录用来作为挂载点目录 挂载完成之后那么就要去修改yum源了 Vi /etc/yum.r…

【golang】go语句执行规则(goroutine)(下)

怎样才能让主goroutine等待其他goroutine&#xff1f; 上篇文章提到&#xff0c;一旦主 goroutine 中的代码执行完毕&#xff0c;当前的 Go 程序就会结束运行&#xff0c;无论其他的 goroutine 是否已经在运行了。那么&#xff0c;怎样才能做到等其他的 goroutine 运行完毕之后…

Java如何调用接口API并返回数据(两种方法)

Java如何调用接口API并返回数据&#xff08;两种方法&#xff09; java处理请求接口后返回的json数据-直接处理json字符串 处理思路&#xff1a; 将返回的数据接收到一个String对象中&#xff08;有时候需要自己选择性的取舍接收&#xff09; 再将string转换为JSONObject对象 …

在本地搭建Jellyfin影音服务器,支持公网远程访问影音库的方法分享

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

221. 最大正方形 Python

文章目录 一、题目描述示例 1示例 2示例 3 二、代码三、解题思路 一、题目描述 在一个由 0 和 1 组成的二维矩阵内&#xff0c;找到只包含 1 的最大正方形&#xff0c;并返回其面积。 示例 1 输入&#xff1a;matrix [["1","0","1","0&q…

公网中Linux系统下Redis使用注意事项以及被pnscan病毒攻击的经过

一次惨痛的教训&#xff1a;被pnscan病毒攻击的经过&#xff08;公网中Linux系统下Redis使用注意事项&#xff09; 0.案发情况pnscan病毒感染惨状&#xff1a;>>提示<< 1.案发原因2.排查过程简单排查之后&#xff0c;发现啥都做不了。先百度到了如下文章&#xff1…

mac垃圾清理软件有哪些

随着使用时间的增加&#xff0c;mac系统会产生一些垃圾文件&#xff0c;影响系统的性能和稳定性。为了保持mac系统的高效&#xff0c;用户需要定期使用mac垃圾清理软件来清理系统缓存、日志、语言包等无用文件。CleanMyMac是一款功能强大的mac垃圾清理软件&#xff0c;它可以帮…