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

repo 简单搭建学习记录

时间:2024-09-26 18:21:56浏览次数:3  
标签: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仓库
【Gitee】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.51cto.com/realTiX/12120718

相关文章

  • Codeforces Round 971 (Div. 4)题解记录(G3待补)
    A.Minimize!暴力模拟一遍即可#include<iostream>#include<queue>#include<deque>#include<map>#include<set>#include<stack>#include<vector>#include<bitset>#include<math.h>#include<random>#include&l......
  • 算法记录——树
     二叉树3.1二叉树的最大深度思路:二叉树的最大深度=根节点的最大高度。因此本题可以转换为求二叉树的最大高度。        而求高度的时候应该采用后序遍历。遍历顺序为:左右中。每次遍历的节点按后序遍历顺序,先收集左右孩子的最大高度,再最后处理当前节点的最大高......
  • 算法记录——链表
    2.链表2.1判断是否是回文链表1.方法一:利用栈反转链表/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval){this.val=val;}*ListNode(intval,Lis......
  • 如何用Java SpringBoot Vue搭建宠物店管理系统?实现高效业务流程
    ✍✍计算机毕业编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • BladeX开发入门(记录)
    BladeX物联网平台是一款高度集成的物联网解决方案,涵盖设备管理、数据采集、实时监控、数据分析以及开放API服务等核心功能。平台经过精心设计与开发,提供了全面的品类、产品和设备支持。设备注册成功后,能够轻松桥接至其他物联网云平台,实现设备的无缝集成。同时提供服务端订阅功......
  • 某房地产集团搭建员工培训体系项目纪实
    某房地产集团搭建员工培训体系项目纪实——完善员工培训体系,提高培训效果【客户行业】房地产行业【问题类型】培训体系【客户背景】某房地产公司隶属于某大型央企,主营业务涵盖房产开发、物业管理等房地产全产业链。依托央企的品牌和实力,充分发挥产业链协同、城市综合开发......
  • 安全:snoopy: 只能记录root的操作命令
    一,问题现象:1,一台新服务器上安装了snoopy之后,发现一个问题,它只能记录root的操作命令,其他用户的操作命令完全记录不下来2,查看配置:[root@backup~]#snoopyctlconf;Optionsfromconfigfile(ordefaults):/etc/snoopy.ini[snoopy]error_logging=yesfilter_chain=e......
  • VN9D DataSheet 阅读记录
    简介VN9D30是一个高边外设,有6个channel,使用24路SPI进行通信,用于汽车领域。Generaldeepcoldcrankingapplications(指深冷启动应用场景)IntegratedPWMenginewithindependentphaseshiftandfrequencygeneration(foreachchannel)IntegratedPWMengine:指的......
  • ‌华为手机记录密码后页面显示的用户名可以通过修改设置来隐藏
    1、打开手机主页面,进入【手机设置】。2、在设置界面中,找到并选择【安全】菜单。 3、进入“密码保险箱”。 4、进入 “管理应用自动填充” 5、关闭保存和自动填充  ......
  • Hadoop高可用集群搭建
    一、HDFSHA简介1.1 QJM简介1.QuorumJournalManager(仲裁日志管理器),是Hadoop官方推荐的HDFSHA解决方案之一2.使用zookeeper中ZKFC来实现主备切换;3.使用JournalNode(JN)集群实现editslog的共享以达到数据同步的目的1.2主备切换问题解决方案--ZKFailoverController(zkfc)ZKFailo......