Repo命令与git的关系

Repo命令与git的关系是很密切的。 我们都知道,git是一个开源的版本控制系统,常用在大型项目的管理上。 我们对repo的使用和了解就比较少了。Repo是一个基于Git构建出来的工具,它的出现不是为了取代Git,而是为了更方便开发者使用Git这个工具。repo脚本的部分截图:
在这里插入图片描述

事实上,如果你也像我一样用的是Ubuntu操作系统,那么操作系统已经存在这个脚本了,它在usr/bin/repo:
在这里插入图片描述
所以对于我们来说真正要做的就是将repo脚本里的REPO_URL的值改成一个可用的,REPO_URL在脚本中的值是https://gerrit.googlesource.com/git-repo,我这边不能访问,我用清华的来代替它,清华REPO_URL值是https://mirrors.tuna.tsinghua.edu.cn/git/git-repo。这样我们就可以使用repo工具了。

如果你的Linux操作系统上没有repo这个工具,那么你可以按下面的步骤来操作:

安装Repo命令

在terminal里输入repo -h就会提示我们repo还没有安装,可以使用repo init来把repo安装在当前目录,之所以可以安装在当前目录,而不是git的安装那样安装在工程目录以外,是因为repo这个工具就是一个python写的脚本工具。
请添加图片描述
repo init 在当前目录安装repo:
请添加图片描述
从上图可知,所谓安装repo工具,就是把repo脚本下载回来。执行repo init 后,会从一个默认的地址下载repo,如果失败了,我们其实可以自己下载repo工具,并放到当前目录,我推荐放到~/bin/repo,再加入到环境变量中,可以让repo全局都可用,而不仅仅只用在当前项目。

创建bin目录用于存储repo脚本,并打开目录:

mkdir -p ~/bin && cd ~/bin

下载repo脚本

用curl命令下载清华大学提供的repo脚本,并保存到~/bin/repo这个文件中:

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo

在这里插入图片描述

授权repo执行权限

通过ll命令,可以发现repo目前没有执行的权限,所以我们要对其进行授权。
请添加图片描述
请添加图片描述

替换脚本中的REPO_URL的地址

接下来我们再修改一下这个repo脚本在这里插入图片描述
上面这段脚本就是:
1、从系统环境变量REPO_URL取值,如果没有取到,就直接用https://gerrit.googlesource.com/git-repo

我试过上面这个地址,访问不了。于是我用了https://mirrors.tuna.tsinghua.edu.cn/git/git-repo这个地下。那么当repo工具在后面的操作中,再需要访问到这个地址,它就用我配置这一个。那么配置的方式,可以直接在repo脚本文件里直接改,或者配置一个REPO_URL环境变量到系统上,它值是一个可以访问到git-repo的东西即可,如我刚刚提供这一个。在这里我直接选择在文件里改,改完保存即可:
在这里插入图片描述

将repo命令添加到环境变量中

在terminal中直接将repo所在的目录追加到环境量PATH后面,这种方式只能这一次有效,下一次再使用就需要再执行多一次这条命令,否则报repo命令找不到:

export PATH=${PATH}:~/bin

我们也可以通过以下方式将repo命令做成全局有效,设置一次就行,不需要在使用前再设置:

  1. 首先,打开家目录(~ 这个符号代表家目录)下的.bashrc配置文件:
$ vim ~/.bashrc
  1. export PATH=${PATH}:~/bin追加到.bashrc文件的最后一行

请添加图片描述

  1. 执行source命令,让配置立马生效,否则只有下次开机后才会生效
$ source ~/.bashrc
  1. 检查环境变量是否有我们的~/bin目录,我们可以打印PATH环境变量的值来确定
    在这里插入图片描述

/home/kyunbn/bin就是repo所在的目录,这说明环境变量中有我们的repo所在的目录了。

测试repo能否工作,我们用repo初始化openharmony的代码

  1. 创建一个目录myfolder来存放openharmony的仓库
$ mkdir ~/HmOS && cd ~/HmOS
  1. 在目录~/HmOS初始化openharmony的本地仓库
$ repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify

请添加图片描述

好的,我们的repo可以用了。下一篇我们会了解一下repo提供的命令

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue倒计时60秒改变按钮状态效果demo(整理)

你可以使用Vue的计时器和绑定状态的方法来实现这个功能。 首先&#xff0c;在data中添加一个计时器countdown&#xff0c;初始值为0。 data() {return {countdown: 0} }<template><div><button click"startCountdown" :disabled"countdown > …

RestClient查询和结果处理的Java代码

match_all查询&#xff1a; //查询所有文档 match_all查询Testvoid testMatchAll() throws IOException {// 1.准备RequestSearchRequest request new SearchRequest("hotel");// 2.准备DSLrequest.source().query(QueryBuilders.matchAllQuery());// 3.发送请求Sea…

centos 7 上如何安装chrome 和chrome-driver

centos 7 上如何安装chrome 和chrome-driver 查找自己的服务器是什么系统 cat /etc/os-release这里以centos linux 7为例 下载google-chrome安装包 wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm安装chrome sudo yum localinstall go…

Airtest-Selenium实操小课

1. 前言 上一课我们讲到用Airtest-Selenium爬取网站上我们需要的信息数据&#xff0c;还没看的同学可以戳这里看看~ 那么今天的推文&#xff0c;我们就来说说看&#xff0c;怎么实现看b站、刷b站的日常操作&#xff0c;包括点击暂停&#xff0c;发弹幕&#xff0c;点赞&#…

c语言实现b树

概述&#xff1a;B 树&#xff08;B-tree&#xff09;是一种自平衡的搜索树数据结构&#xff0c;广泛应用于数据库和文件系统等领域。它的设计旨在提供一种高效的插入、删除和查找操作&#xff0c;同时保持树的平衡&#xff0c;确保各个节点的深度相差不大。 B 树的特点包括&a…

springCloud使用apache的http类和RestTemplate以及Eureka

使用apache的&#xff1a; package com.csgholding.pvgpsp.eqp.util;import com.esotericsoftware.minlog.Log; import org.apache.commons.collections4.MapUtils; import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; import org.apac…

洛谷 P1439 【模板】最长公共子序列【线性dp+dp模型转换】

原题链接&#xff1a;https://www.luogu.com.cn/problem/P1439 题目描述 给出 1,2,…,n 的两个排列 P1​ 和 P2​ &#xff0c;求它们的最长公共子序列。 输入格式 第一行是一个数 n。 接下来两行&#xff0c;每行为 n 个数&#xff0c;为自然数 1,2,…,n 的一个排列。 输…

1359 · 有序数组转换为二叉搜索树

链接&#xff1a;LintCode 炼码 - ChatGPT&#xff01;更高效的学习体验&#xff01; 题解&#xff1a; ### 解题思路 1.每次随机一个要插入的数字&#xff08;避免搜索树过度不平衡&#xff09; 2.插入过的数字&#xff0c;就不在插入了 3.调用Insert1函数进行插入二叉搜索树…

TypeScript进阶(四)声明文件

✨ 专栏介绍 TypeScript是一种由微软开发的开源编程语言&#xff0c;它是JavaScript的超集&#xff0c;意味着任何有效的JavaScript代码都是有效的TypeScript代码。TypeScript通过添加静态类型和其他特性来增强JavaScript&#xff0c;使其更适合大型项目和团队开发。 在TypeS…

AI副业拆解:随心所欲地替换任何内容

在瞬息万变的世界里&#xff0c;保持“物体ID”的核心特质&#xff0c;同时创造无限可能的新内容&#xff0c;这是一场市场需求与技术挑战的双重交响。此刻&#xff0c;为您揭开一款颠覆性创新产品——ReplaceAnything框架。 直击痛点&#xff0c;破茧成蝶&#xff0c;Replace…

有趣的事,讲给有趣的人听

哈哈哈&#xff0c;今天不写技术了&#xff0c;今天分享一下生活&#xff0c;技术我们什么时候都可以学&#xff0c;但是生活更值得我们现在就去更好的体验&#xff01; 两年多的涤生大数据&#xff0c;认识了形形色色的小伙伴&#xff0c;陆续沟通下来6000多人&#xff0c;彼时…

Vue框架入门基础知识

什么是Vue&#xff1f; Vue 是一套前端框架&#xff0c;免除原生JavaScript中的DOM操作&#xff0c;简化书写 框架:是一个半成品软件&#xff0c;是一套可重用的、通用的、软件基础代码模型。基于框架进行开发&#xff0c;更加快捷、更加高效。 基于MVVM(Model-View-ViewModel…

看完这篇带你了解大学生必考安全证书NISP详解

NISP证书详解 NISP证书介绍&#xff1a;NISP证书等级&#xff1a;NISP&#xff08;一级&#xff09;报名&#xff1a;NISP&#xff08;一级&#xff09;课程大纲&#xff1a;NISP&#xff08;二级&#xff09;报名NISP&#xff08;二级&#xff09;课程大纲NISP二级置换CISP指南…

Java中的泛型

泛型 什么是泛型泛型类泛型接口泛型方法通配符泛型的上下限 泛型的注意事项擦除问题基本数据类型问题 什么是泛型 定义类、接口、方法时&#xff0c;同时声明了一个或者多个类型变量&#xff08;如&#xff1a;&#xff09;&#xff0c;称为泛型类、泛型接口&#xff0c;泛型方…

说说TCP 3次握⼿和4次握手

三次握手过程 client端建⽴连接&#xff0c;发送⼀个SYN同步包&#xff0c;发送之后状态变成SYN_SENTserver端收到SYN之后&#xff0c;同意建⽴连接&#xff0c;返回⼀个ACK响应&#xff0c;同时也会给client发送⼀个SYN包&#xff0c;发送完成之后状态变为SYN_RCVDclient端收到…

PySide6/PyQt6中的时间管理类:QTime的使用方法

文章目录 📖 介绍 📖🏡 环境 🏡📒 使用方法 📒📝 创建QTime对象📝 常用方法⚓️ 相关链接 ⚓️📖 介绍 📖 QTime是PySide6中用于处理时间段的类,可以用来表示一天中的时间,例如小时、分钟和秒。它提供了许多操作和格式化时间的功能,使得处理时间变得更加…

MATLAB中simulink中scope同时显示两个输入信号

在使用scope时&#xff0c;需要两个输入信号的设置方法 1.点开scope图标 2 点击设置按钮&#xff0c; 然后弹出configuration properties&#xff1a;scope配置图&#xff0c;在Main选项下&#xff0c;在Number of input ports&#xff1a;1这里面更改数字&#xff0c;需要几…

vscode中如何解决 Comments are not permitted(JSON中不允许注释)

vs code中如何解决Comments are not permitted&#xff08;JSON中不允许注释&#xff09;&#xff1f; 简单几步&#xff0c;让你轻松解决。 1.使用vscode打开json文件后&#xff0c;一些注释显示如图所示&#xff0c;有红色波浪线&#xff0c;影响阅读 2. 悬浮在波浪线报错信…

【MySQL】mysql集群

文章目录 一、mysql日志错误日志查询日志二进制日志慢查询日志redo log和undo log 二、mysql集群主从复制原理介绍配置命令 读写分离原理介绍配置命令 三、mysql分库分表垂直拆分水平拆分 一、mysql日志 MySQL日志 是记录 MySQL 数据库系统运行过程中不同事件和操作的信息的文件…
最新文章