首页 > 其他分享 >repo 简单搭建学习记录

repo 简单搭建学习记录

时间:2024-09-25 17:48:15浏览次数:10  
标签:xml git 记录 仓库 指定 manifest repo 搭建

repo 简单搭建学习记录

文章目录

一、repo 搭建

参考:

1、服务端

repo 需要一个服务端(manifest仓库),用来列出所有子仓库的路径等信息,如果在 github 等远程托管平台创建服务端,那么只要创建一个普通仓库并添加 default.xml 就行了。
如果要自己创建服务端,则使用 git init --bare 来创建一个裸仓库即可。

xml 文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
    <remote name="github" fetch="https://github.com/用户名"/>
    <default revision="master" remote="github" sync-j="4"/>
    
    <project name="repo1" path="repo1" revision="master"/>
    <project name="repo2" path="repo2" revision="master"/>

    <!-- 更多项目... -->

</manifest>
  • remote: 远程服务端,name 可随意,一般取 origin
  • default: 设置每个项目默认的仓库和分支,remote 指定了使用哪一个远程服务端
  • project: 每个项目的 git 仓库
    • name: 远程仓库的名称,不能随意取,必须和远端路径对上,否则无法找到远程仓库
    • path: 对应仓库下载后想要保存在的本地路径
    • revision: 分支名称或者 commit 哈希

另外,使用 HTTPS 的 URL 会导致每次提交修改都需要输入用户名和密码,很麻烦,以下是使用 SSH 的 xml 样例:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
    <remote name="github" fetch="ssh://[email protected]/用户名"/>
    <default revision="master" remote="github" sync-j="4"/>
    
    <project name="repo1.git" path="repo1" revision="master"/>
    <project name="repo2.git" path="repo2" revision="master"/>

    <!-- 更多项目... -->

</manifest>

2、客户端

安装 repo/下载 repo 引导脚本:

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo
chmod 777 /usr/local/bin/repo

这里只是下载了一个 repo 引导脚本,主体部分会在每次 repo init 时下载,所以为方便每次下载,可将 更改下载源环境变量的命令 添加进 shell 启动脚本(如 ~/.bashrc):

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

创建一个文件夹来下载所有仓库,在其中使用 repo init 初始化

repo init -u https://github.com/用户名/manifest仓库名 -b master -m deault.xml

# 或者

repo init -u [email protected]:用户名/manifest仓库名.git -b master
  • -u(–manifest-url): 指定 Manifest 库的 Git 访问路径。唯一必不可少的选项
  • -b(–manifest-branch): 指定要使用Manifest仓库中的某个特定分支
  • -m(–manifest-name): 指定要使用的Manifest文件。不指定的话,默认为default.xml文件

同步项目:

repo sync

运行该命令后会将 deault.xml 中指定的仓库克隆到指定路径
但是 repo sync 命令只同步检出当前远程仓库提交指针所指向的代码,克隆下来的仓库都是分离 HEAD 状态,并不会指向现有分支,可以使用 git checkout master 来正常使用。或者使用如下 repo 命令来在所有子仓库运行同一命令:

repo forall -c "这里填shell命令,可以不打引号"
  • -c: 要运行的命令和参数,即shell命令。此命令会通过 /bin/sh 进行求值,它之后的任何参数都将作为 shell 位置参数传递。
  • -p: 在指定命令输出结果之前显示项目标头。这通过以下方式实现:将管道绑定到命令的 stdin、stdout 和 sterr 流,然后通过管道将所有输出结果传输到一个页面调度会话中显示的连续流中。
  • -v: 显示该命令向 stderr 写入的消息。
realTiX@local:~/Documents/proj$ repo forall -c "pwd"
/home/realTiX/Documents/proj/repo1
/home/realTiX/Documents/proj/repo2

realTiX@local:~/Documents/proj$ repo forall -pv -c "pwd"
project repo1/
/home/realTiX/Documents/proj/repo1

project repo2/
/home/realTiX/Documents/proj/repo2

更标准的做法是使用 repo start 命令来启动本地分支:

repo start master --all

二、repo 更多细节

【知乎】三步实现repo聚合本地git仓库
【Git?ee】Repo 工具使用介绍
【CSDN】git&repo入门
【CSDN】git repo工具详细使用教程

三、repo sync 如何指定 manifest 仓库版本

不能直接指定,只能 repo init -b 指定分支
或者专门对特定版本创建 xml 文件后使用 repo init -m 指定

四、manifest 仓库如何指定子仓库版本

revision 参数不能指定git tag,只能指定分支或哈希

标签:xml,git,记录,仓库,指定,manifest,repo,搭建
From: https://blog.csdn.net/realTiX/article/details/142501192

相关文章

  • 三星flash记录
    1.刷目标包之前,先刷本机对应的官方最新包1.0退出谷歌账号、三星账号1.1使用固件下载器下载本机最新的官方包:输入koo、SM-N976N、IMEI码,获取并下载1.2进入ODIN模式:关机->按住音量+和音量-->typec连接电脑->根据提示,按一下音量+,就进入odin模式了1.3电脑打开ODIN,分别选......
  • Excel转dbc过程中出现的问题记录
    受限于python版本,无法使用canmatrix等库于是采用excel转字符串,输出到.dbc文档的方式实现DBC信息内容参见 DBC系列之DBC格式与属性说明[1]-CSDN博客遇到的问题:1、报文的DLC范围被限制为0~8,超限的报文数据都会报错解决办法:以文本文档方式打开dbc文档,添加关键字段BA_DEF_......
  • 中年被裁,记录下这段时间的心路历程,内含前端面试题和面经
    前言真正的转变都是痛苦且无声的。大家好啊,好久不见,停更了一个月了,最近确实没时间更新我的公益服游戏,这段时间我经历了工作被裁员,学习复习,面试找工作,到最终找到工作。想把这段时间我的心路历程和面试题面经分享出来,说不定可以帮到你。心路历程坐标天津,从事互联网前端开发工作,......
  • Canvas简历编辑器-Monorepo+Rspack工程实践
    Canvas简历编辑器-Monorepo+Rspack工程实践 Canvas简历编辑器-Monorepo+Rspack工程实践在之前我们围绕Canvas聊了很多代码设计层面的东西,在这里我们聊一下工程实践。在之前的文中我也提到过,因为是本着学习的态度以及对技术的好奇心来做的,所以除了一些工具类的库例如 ArcoDe......
  • Codeforces Round 974 (Div. 3)题解记录
    A.RobinHelps签到模拟,遍历一遍即可,注意没钱时不给钱。\(O(n)\)#include<iostream>#include<set>#include<map>#include<vector>#include<algorithm>#include<bitset>#include<math.h>#include<string>#include<string.h>#......
  • 自适应企业网站建站系统源码 带完整的安装代码包以及搭建部署教程
    系统概述传统的建站方式往往需要耗费大量的时间和资源,而且对于非专业人士来说,操作难度较大。为了满足企业快速建站的需求,自适应企业网站建站系统源码应运而生。该源码的开发团队致力于打造一款功能齐全、易于操作的建站系统,让企业能够在短时间内搭建出符合自身需求的网站,提升......
  • 多用户自定义商城小程序源码系统 独立部署 到源代码包以及搭建部署教程
    系统概述随着移动互联网的迅猛发展,消费者的购物习惯逐渐向线上转移。传统电商平台虽然提供了一定的便利,但也存在一些局限性,如高昂的入驻费用、缺乏个性化定制等。为了适应市场需求,多用户自定义商城小程序源码系统应运而生。这一系统的开发旨在为企业和商家提供一个自主掌控、......
  • 搭建一个前后端分离的Vue框架(windows 前端篇)
    一:前言:前段时间出来一期Python Django框架的安装搭建以及数据库配置、解决跨域等相关问题都已经写在后端文章中了,本期主要是给大家出一期前端框架的搭建以及向后端发送请求,让大家更加直观的看到前后端联调的一个效果,废话少说,直接开始上手,首先我们先了解一下Vue框架,大家可以......
  • AGC067B 做题记录
    link考虑时光倒流,相当于每次选择一个区间,若未覆盖的位置的颜色都相同,则把区间里的所有位置覆盖,一个序列合法当且仅当经过若干次覆盖后\([1,n]\)中所有位置都被覆盖。容斥,考虑经过若干次覆盖后,还剩未覆盖位置集合\(S\),满足不存在可以继续覆盖\(S\)中的位置的区间。\(S\)把......
  • 基于腾讯云 AI 代码助手的Web端宝可梦图鉴实践记录
    在编程的世界里,效率和质量是永恒的追求,每一位开发者不断追求的是如何以更快的速度、更高的质量完成代码的编写与调试。另一方面,大型语言模型,凭借其强大的神经网络架构和庞大数据训练,已具有模拟人类的语言理解与创造的能力,而这种能力的突破性进展让AI编程也成为现实。本篇文章,将介绍......