repo和git的常用命令

repo 简介

repo是Google开发的用于管理Android版本库的一个工具,repo是使用Python对git进行了一定的封装,并不是用于取代git,它简化了对多个Git版本库的管理。用repo管理的版本库都需要使用git命令来进行操作。因此,使用repo工具之前,请先确保已经安装git。
repo是一个用于管理多个Git仓库的工具,它可以帮助您在一个代码库中管理多个Git仓库的代码。

为什么要用repo?

项目模块化/组件化之后各模块也作为独立的 Git 仓库从主项目里剥离了出去,各模块各自管理自己的版本。Android源码引用了很多开源项目,每一个子项目都是一个Git仓库,每个Git仓库都有很多分支版本,为了方便统一管理各个子项目的Git仓库,需要一个上层工具批量进行处理,因此repo诞生。
repo也会建立一个Git仓库,用来记录当前Android版本下各个子项目的Git仓库分别处于哪一个分支,这个仓库通常叫做:manifest仓库(清单库)。

repo的使用

repo下载安装
下载地址:https://mirrors.tuna.tsinghua.edu.cn/git/git-repo ,将下载下来的文件命名为repo,放在PATH环境变量所包含的目录下面,例如可以放在/usr/local/bin目录下(后面介绍均以放在/usr/local/bin目录下为例)。
或者,直接使用curl命令下载:

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

以上命令将在您的
~/bin目录中下载并安装repo脚本。

初始化代码库

在使用repo之前,您需要在本地计算机上初始化一个代码库,并将其与
repo关联。在您的本地计算机上,创建一个目录并初始化代码库:

$ mkdir myproject
$ cd myproject
$ repo init -u <URL>

其中
是您要使用的Git仓库的URL。这将在当前目录中创建一个
.repo目录,并将
repo工具的配置文件下载到该目录中。
同步代码

一旦您初始化了代码库,就可以使用以下命令将代码同步到本地:

$ repo sync

这将使用
repo工具自动下载和更新所有Git仓库中的代码。
管理Git仓库

使用repo start命令创建一个新的分支,然后使用
repo upload命令将更改提交到代码审查工具中。您还可以使用
repo forall命令在所有Git仓库中执行任意Git命令。
更新代码

您可以使用以下命令更新代码库中的所有Git仓库:

$ repo sync

这将下载和更新所有Git仓库中的代码。以上是
repo的基本使用介绍。使用repo可以更轻松地管理多个Git仓库,并使您能够更方便地进行代码共享和代码审查。
查看repo管理下的代码更新历史记录
如果您使用repo管理多个Git仓库,在repo中查看整个代码库的修改记录,可以使用以下命令:
plaintextCopy coderepo forall -c ‘git log’

这将为每个Git仓库输出其Git日志。您也可以使用以下命令查看某个特定仓库的修改记录:
plaintextCopy coderepo forall <project_name> -c ‘git log’

其中<project_name>是您要查看的特定仓库的名称。请注意,repo只是一个管理多个Git仓库的工具,它本身并不存储代码,因此不能直接查看整个代码库的修改记录。

git的常用命令

git log

git log执行后会返回一个冒号,表示等待用户输入搜索参数,以便更准确地查看提交记录。如果用户不输入任何参数,则会显示所有提交记录。
用户输入的参数有哪些?

用户可以输入的搜索参数包括:

  • 作者:–author
  • 日期:–since 或–after ,–until 或–before
  • 关键词:–grep
  • 提交信息:–oneline,–subject,–body
  • 限制结果数:-n

git reflog 查看每一次操作

git log --all --pretty=oneline --graph 查看所有提交记录

使用git log 命令可以查看每一笔修改涉及到哪些文件,具体方法如下:

  1. 查看某次提交:git log -p <commit_id>
  2. 查看某个文件的历史提交:git log -p <file_name>
  3. 查看某段时间内的提交:git log --since= --until=
    git log --since=“2020-07-05” --until=“2020-07-10”

这个命令会查询出在2020年7月5日到2020年7月10日之间的所有提交记录。
查看某次提交中涉及到的文件:git show <commit_id>
可以使用git show --name-only <commit_id> 命令来查看某一次提交修改的文件,不需要看到具体修改。

git log --since=“2023-02-05” --until=“2023-03-10”|grep “^commit”|awk ‘{print $2}’|xargs git show --name-only

废弃修改

如果你在repo仓库中修改了一些东西,但是不想上传并希望废弃这些修改,可以使用以下命令来撤销这些修改:

repo forall -c “git reset --hard”

该命令会遍历repo仓库下的所有git仓库,并将它们的工作区和暂存区恢复到HEAD的状态,即撤销所有修改。执行该命令前,请确保你已经保存了需要保留的修改,并做好了备份。
如果你只想撤销某个git仓库中的修改,可以进入该仓库的目录,然后执行以下命令:

撤销该仓库中的所有修改

git reset --hard

该命令将撤销该仓库中的所有修改,并将工作区和暂存区恢复到HEAD的状态。
需要注意的是,撤销修改会丢失已修改的内容,所以在执行该操作前,请确保你已经保存了需要保留的修改,并做好了备份。

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

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

相关文章

k8s证书到期实际操作

文章目录 1. 百年的kubeadm1.1 源码修改1.2 准备镜像1.3 编译1.4 成品备份 2. 生成证书2.1 master主节点2.2 其他master节点 1. 百年的kubeadm 1.1 源码修改 源码下载 cd /usr/local/src/ git clone -b release-1.15 https://github.com/kubernetes/kubernetes.git再次确认分…

【Java基础教程】Java学习路线攻略导图——史诗级别的细粒度归纳,持续更新中 ~

Java学习路线攻略导图 上篇 前言1、入门介绍篇2、程序基础概念篇3、包及访问权限篇4、异常处理篇5、特别篇6、面向对象篇7、新特性篇8、常用类库篇 前言 &#x1f37a;&#x1f37a; 各位读者朋友大家好&#xff01;得益于各位朋友的支持和关注&#xff0c;我的专栏《Java基础…

Vue2 - 模板、渲染、事件处理、表单输入绑定

文章目录 模板语法1、文本2、原始 HTML3、属性 Attribute4、使用 JavaScript 表达式 条件渲染1、v-if2、v-else3、v-show4、v-if vs v-show 的区别 列表渲染1、用 v-for 把一个数组映射为一组元素2、维护状态 事件处理1、监听事件 v-on2、事件处理方法3、内联处理器中的方法 表…

【Linux后端服务器开发】UDP协议

目录 一、端口号 二、UDP报头格式 三、UDP的特点 四、UDP协议实现网络聊天群 一、端口号 端口号port标识了一个主机上进行通信的不同的应用程序。 0 ~ 1023&#xff1a;系统端口号&#xff0c;HTTP、FTP、SSH等这些广为使用的应用层协议&#xff0c;它们的端口号都是固定…

随手笔记——OpenCV 的基础使用方法

随手笔记——OpenCV 的基础使用方法 说明CMakeLists.txt关键内容源代码 说明 演示了如下几个操作&#xff1a;图像读取、显示、像素遍历、复制、赋值等。大部分的注解已写在代码里面。编译该程序时&#xff0c;需要在 CMakeLists.txt 中添加 OpenCV 的头文件&#xff0c;然后把…

Qt中QMainWindow的相关介绍

目录 菜单栏 工具栏 状态栏&#xff1a; 停靠窗口&#xff1a; QMainWindow 是标准基础窗口中结构最复杂的窗口&#xff0c;其组成如下: 提供了菜单栏 , 工具栏 , 状态栏 , 停靠窗口 菜单栏&#xff1a;只能有一个&#xff0c;位于窗口的最上方 工具栏&#xff1a;可以有多…

AI制图工具丨Midjourney产品功能介绍

了解如何使用Discord上的Midjourney Bot通过简单的文本提示创建自定义图像 Midjourney是一款AI制图工具&#xff0c;只要关键字&#xff0c;就能透过AI算法生成相对应的图片&#xff0c;只需要不到一分钟。 可以选择不同画家的艺术风格&#xff0c;例如安迪华荷、达芬奇、达利…

基于单片机水质检测系统的设计与实现

功能介绍 以STM32单片机作为主控系统&#xff1b;液晶显示当前参数&#xff1b;PH模块采集当前水质PH酸碱度&#xff1b;DS18B20温度传感器采集当前水体温度&#xff1b;TDS传感器采集当前水体TDS值&#xff1b;浊度传感器采集当前水体浑浊度&#xff1b;按键设置PH、温度、TDS…

无涯教程-Javascript - For...in循环语句

for ... in 循环用于循环访问对象的属性&#xff0c;由于无涯教程尚未讨论Objects对象&#xff0c;您就会发现此循环非常有用。“ for...in”循环的语法为: for (variablename in object) {statement or block to execute } 在每次迭代中&#xff0c;将 object对象中的一个属性…

Elasticsearch 集群某一节点修改 IP 后无法启动问题复盘

1、集群环境及问题描述 集群版本&#xff1a;6.8.X集群节点&#xff1a;5节点&#xff08;三个节点为主数据节点&#xff0c;另外两个独立数据节点&#xff09;。问题描述&#xff1a;由于IP冲突&#xff0c;修改了一台服务器的IP&#xff0c;然后5台配置改了一下一次重启&…

Kafka 深度剖析

1、应用场景 1.1 kafka场景 Kafka最初是由LinkedIn公司采用Scala语言开发&#xff0c;基于ZooKeeper&#xff0c;现在已经捐献给了Apache基金会。目前Kafka已经定位为一个分布式流式处理平台&#xff0c;它以 高吞吐、可持久化、可水平扩展、支持流处理等多种特性而被广泛应用…

ffmpeg和opencv源码搭建

目录 一、安装ffmpeg创建文件夹ffmpeg4.1解压压缩包二、安装opencv三、项目工程编译运行虹软的sdk注册创建工程文件夹编译ffmpeg_arc_face-recognize修改Makefile编译FFMPEG_DNN_Project四、安装包下载五、编译过程中可能会出现的问题的解决方法一、安装ffmpeg 参考文章:http:…

flask基本用法小白教程+按钮跳转到指定页面+python和pip安装(后附)

一、flask学习教程&#xff1a; 1.1 基本程序&#xff1a; 大家可以在pycharm中复制如下代码&#xff0c;先感受一下flask的基本用法&#xff1a; 点击链接可进入浏览器查看程序运行的结果&#xff0c;在127.0.0.1:5000后面添上/test1/等设定的文字&#xff0c;可查看不同函…

基于单片机的蓝牙音乐喷泉的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;通过HM-18蓝牙音频模块进行无线传输&#xff1b; 通过LM386功放模块对音频信号进行放大&#xff1b;手机端可以直接控制音频播放&#xff0c;并且最远距离可达20米&#xff1b;手机端可以进行任意音乐切换&#xff0c;播报、暂停&a…

微信小程序中常见组件的使用

文章目录 微信小程序中常见组件的使用视图组件viewscroll-viewswipermovable-area 基础组件icontextrich-textprogress 表单组件buttoncheckbox、checkbox-grouplabelforminputpicker单列选择器多列选择器时间选择器&日期选择器&地区选择器 picker-viewradiosliderswit…

MySQL数据备份与恢复

目录 ​编辑 一、数据备份 1.1物理备份 1.1.1冷备份 1.1.2热备份 1.1.3温备份 二、逻辑分区 2.1完全分区 2.2差异分区 2.3增量备份 三、数据备份恢复实验 3.1做一个数据 3.2物理冷备份与恢复 3.3mysqldump 备份与恢复&#xff08;温备份&#xff09; 3.4Mysql数据…

采集极验4滑块验证码图片数据

在网络安全领域&#xff0c;验证码是一种常见的用于验证用户身份或防止恶意机器人攻击的技术。而极验4滑块验证码作为一种广泛应用的验证码形式&#xff0c;其具有较高的安全性和防御能力。本文将以获取极验4滑块验证码图片数据为主题&#xff0c;介绍相关技术和方法。 一、极…

【webrtc】rtc::Thread和std::thread 的用法

全局线程 itsfolf/Discord-Screenshare-Linux#include "rtc_base/thread.h"rtc::Thread* GlobalLoopThread() {static auto result = []

redis 相关

redis相关面试题 redis支持哪几种数据形式&#xff1f; String,hash,set,zset,list redis主要消费什么物理资源&#xff1f; 内存&#xff0c;key-value的形式&#xff0c; redis 具有快速和数据持久化的特征&#xff0c;如果不将数据放在内存中&#xff0c;磁盘 I/O 速度为严…

MySQL常用语句

目录 连接MySQL 数据库操作 表的操作 数据操作 进阶查询 源码等资料获取方法 连接MySQL -- 语法&#xff1a;mysql -u用户名 -p密码 注&#xff1a;--空格 起到注释的作用 mysql -uroot -p123456 数据库操作 -- 显示当前时间、用户名、数据库版本&#xff08;可以单独…