| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 多仓库管理工具git-repo部署 -> 正文阅读 |
|
[开发工具]多仓库管理工具git-repo部署 |
前言在项目开发过程中,通常需要为不同的功能创建不同的repo(尽管有些大公司使用MonoRepo策略,例如Google,Uber,Microsoft…,我们可以简单的理解为team规模太大,沟通成本太高,通过单一的repo将间接地迫使不同team及时保持沟通。) Google的Gerrit采用repo(The Multiple Git Repository Tool)来管理项目的多个仓库,它是在Git基础上构建的一个脚本工具,对于大型项目而言,这是种很好的管理方式。虽然我们采用的是Gitlab代码托管平台,但是我们也可以借鉴这种管理方式,来管理我们项目的多个仓库。 组成要素采用manifest来管理多个远程仓库,需要三个基本要素:
其中“本地repo脚本”来源于远程git-repo仓库。 远程manifest仓库manifest仓库主要包含一个或多个xml文件用来描述远程的多个仓库。repo工具根据这些描述信息来管理多个仓库。其格式规范参考 我们需要在Gitlab上创建manifest仓库,这一仓库只有Maintainer有权限进行提交。 远程git-repo仓库参考git-repo 这是官方完整的repo工具仓库,在本地初始化项目工程时,我们首先需要将这个仓库拉下来。之后我们就可以使用repo所提供的的丰富的功能了。 本地repo脚本简单的repo工具,来自git-repo仓库,可以完成repo的初始化。 repo的使用安装repo脚本工具从repo使用指导(将客制化好的repo脚本上传服务器供大家下载)下载repo脚本
拉取远程仓库
命名本地仓库的workspace的分支
部署这里我们首先说明repo初始化本地仓库的基本流程,然后再叙述如何将repo添加到自己的工程管理工作中。 repo初始化本地仓库当我们要拉取整个工程的所有仓库时,通过以下两条条指令就可完成:
第一条指令主要完成两个动作:
第二条指令根据manifest仓库中的xml文件的描述,拉取xml文件描述的所有远程仓库到本地,并在各个仓库中检出xml描述的revision分支。 clone git-repo仓库到本地,并检出git-repo的默认分支该动作是根据本地repo脚本进行的,REPO_URL指定了git-repo的位置,REPO_REV指定了要检出的默认分支是哪一个分支。 默认情况下REPO_URL指向https://gerrit.googlesource.com/git-rep , REPO_REV指向main分支(git-repo的默认分支)。 由于墙的问题,大部分情况下从官方链接clone git-repo仓库都会失败。因此为了其他开发者的开发方便,我们需要将git-repo放到自己的Gitlab托管平台。并对仓库中的repo脚本做一些修改,让它指向我们Gitlab托管平台的git-repo仓库。我们将在后面git-repo客制化重点讲述这部分该如何做。 clone manifest仓库到本地,并检出manifest的默认分支该动作根据命令行中的url来clone manifest仓库到本地,并检出默认分支(也可以在命令行中通过“-b <branch_name>”的方式检出指定的分支) git-repo客制化客制化的工作主要是将repo脚本的默认REPO_URL指向我们自己克隆的git-repo仓库。 第一步:
第二步:
第三步:
manifest多版本管理manifest多版本管理策略manifest应该提供检出各仓库不同版本的功能。
为此manifest仓库需要对上述版本(分支和tag)创建对应的分支:
不同的manifest分支通过改变revision来检出不同的个仓库分支。 manifest多版本管理使用指导一节中 manifest多版本管理使用指导不同版本初始化使用示例
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:26:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |