Repo 指令
2024-4-21
| 2024-9-2
0  |  Read Time 0 min
type
status
date
slug
summary
tags
category
icon
password

简介

Repo 是一个由 Google 开发的用于管理多个 Git 仓库的工具,它使得在一个项目中同时管理多个 Git 仓库变得更加简单和高效,Repo 工具通常与大型项目和代码库一起使用,例如 Android 开源项目。
以下是 Repo 工具的一些特点和优势:
  • 统一管理多个仓库:Repo 允许你在一个项目中管理多个 Git 仓库,使得跨仓库的操作更加方便。
  • 简化代码同步:通过 Repo,你可以轻松地同步所有仓库的代码,而不必单独进入每个仓库进行操作。
  • 版本控制:Repo 管理一个名为 "manifest" 的 Git 仓库,其中包含了项目中所有仓库的信息,包括仓库的 URL、分支等。这使得整个项目的版本控制更加方便。
  • 并行下载:Repo 具有并行下载代码的能力,可以加快代码同步的速度,特别是对于包含大量仓库的项目来说更为重要。
  • 简洁的命令:Repo 提供了一组简洁且易于记忆的命令,使得管理多个仓库变得更加简单和高效。

安装 Repo

要安装和使用 repo 工具,可采用以下方式:

下载安装

下载安装 Repo,请执行以下操作:
  1. 确保主目录下有一个 bin/ 目录,并且该目录包含在路径中:
    1. 下载 Repo 工具,并确保它可执行:
      1. curl 命令说明
        curl 是一个命令行工具和库,用于传输数据,支持多种协议,如 HTTP、HTTPS、FTP 等。它可以用来发送和接收数据,执行各种网络操作。

    使用 Homebrew 安装

    mac 用户使用 Homebrew 安装,执行下面的指令:
    repo 卸载
    执行 brew cleanup repo

    Repo 使用

    常用指令与参数

    init

    在当前目录中安装 Repo。这会创建一个 .repo/ 目录,其中包含用于 Repo 源代码和标准 Android 清单文件的 Git 代码库。该 .repo/ 目录中还包含 manifest.xml,这是一个指向 .repo/manifests/ 目录中所选清单的符号链接。
    选项:
    • -u <URL>:指定要从中检索清单代码库的网址。你可以在 https://android.googlesource.com/platform/manifest 中找到常见清单
    • -m <MANIFEST>:在代码库中选择清单文件。如果未选择任何清单名称,则会默认选择 default.xml。
    • -b <BRANCH>:指定初始化时要使用的清单分支。
    注意:对于其余的所有 Repo 命令,当前工作目录必须是 .repo/ 的父目录或相应父目录的子目录。

    sync

    下载新的更改并更新本地环境中的工作文件。如果您在未使用任何参数的情况下运行 repo sync,则该操作会同步所有项目的文件。
    运行 repo sync 后,将出现以下情况:
    • 如果目标项目从未同步过,则 repo sync 相当于 git clone。远程代码库中的所有分支都会复制到本地项目目录中。
    • 如果目标项目已同步过,则 repo sync 相当于以下命令:
      • 其中 <BRANCH> 是本地项目目录中当前已检出的分支。如果本地分支没有在跟踪远程代码库中的分支,则相应项目不会发生任何同步。
    • 如果 git rebase 操作导致合并冲突,那么您需要使用普通 Git 命令(例如 git rebase --continue)来解决冲突。
    repo sync 运行成功后,指定项目中的代码会与远程代码库中的代码保持同步。
    选项:
    • -d:将指定项目切换回清单修订版本。如果项目当前属于某个主题分支,但只是临时需要清单修订版本,则此选项会有所帮助。
    • -s:同步到当前清单中清单服务器元素指定的一个已知的良好版本。
    • -f:即使某个项目同步失败,系统也会继续同步其他项目。
    • -j <NUM>:指定并行下载的线程数。
    • -c:只检查项目清单,不执行实际同步操作。
    • -l:只下载当前分支的代码,不切换到其他分支。

    参考文档

    Android Gradle Plugin 编译流程Android Studio、Gradle 、Gradle Plugin 兼容性
    • Utterance
    Catalog