笔记-使用Repo工具管理多个关联仓库(适用于复杂项目)

笔记-使用Repo工具管理多个关联仓库(适用于复杂项目)

Repo工具通过一个manifest文件统一管理多个Git仓库,常用于Android等大型项目。

1. 安装Repo工具

下载Repo引导脚本并配置镜像源(以清华大学镜像为例):

cpp 复制代码
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo
chmod +x /usr/local/bin/repo
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
2. 创建Manifest仓库

初始化一个裸仓库作为中心仓库:

cpp 复制代码
git init --bare manifest.git

创建default.xml文件,定义子仓库路径和远程源:

cpp 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
    <remote name="origin" fetch="ssh://user@server:/path/to/repos"/>
    <default remote="origin" revision="master"/>
    <project path="module1" name="module1.git"/>
    <project path="module2" name="module2.git"/>
</manifest>

提交并推送default.xml:

cpp 复制代码
cd manifest.git
git add default.xml
git commit -m "Initial manifest"
git push origin master
3. 客户端初始化

在本地创建工作目录并初始化Repo:

bash 复制代码
mkdir myproject && cd myproject
repo init -u ssh://user@server:/path/to/manifest.git

同步所有子仓库:

bash 复制代码
repo sync
4. 推送代码到服务器

若需将本地修改推送到中心仓库,需通过repo forall批量操作:

bash 复制代码
repo forall -pv -c "git push origin master"
相关推荐
GoGeekBaird7 小时前
从 Prompt Engineering 到 Loop Engineering,我觉得 AI 开发这事儿终于开始变味了
后端·github
aosky9 小时前
一台电脑配置多个 SSH Key 对应不同的 GitHub 账号
运维·ssh·github
YuePeng14 小时前
凌晨 3 点告警群炸了,我用浏览器干了原本 XShell 才能干的事
后端·github
QN1幻化引擎15 小时前
自注意力机制 20 年了,我们终于让它学会"压缩记忆"
github
我家媳妇儿萌哒哒15 小时前
git:无法推送refs到远端。您可以试着运行“拉取”功能,整合您的更改。
git
程序员柒叔16 小时前
Hermes Agent 一周动态-2026-W24
人工智能·github·agent·openclaw·hermes
专注VB编程开发20年18 小时前
通义比GITHUB Copilot差了10倍
github·copilot
驯龙高手_追风18 小时前
Gitlab本地服务器搭建及配置-详细教程
git·github
逛逛GitHub19 小时前
在你微信里用爽 Claude Code,我的开源 Skill 又更新了。
github
qq_白羊座19 小时前
Linux 压缩 / 解压(tar)命令 + 参数详解
linux·运维·github