Repo常用指令

在使用 Git 进行版本控制时,repo 是一个由 Google 提供的工具,主要用于管理多个 Git 仓库(特别是在 Android 开发中)。它是对 Git 的封装,简化了多仓库项目的管理。

下面是一些常用的 repo 命令及其用途:


🌐 初始化和同步

repo init

初始化一个新的 repo 客户端。通常会指定一个 manifest 仓库地址。

1
repo init -u <manifest仓库URL> [-b <分支名>] [-m <manifest文件名>]

示例:

1
repo init -u https://android.googlesource.com/platform/manifest -b main -m default.xml

repo sync

从远程仓库下载代码并同步到本地。

1
repo sync

常用选项:

  • repo sync -c:只同步当前分支。
  • repo sync -j4:使用 4 个线程并行同步,加快速度。
  • repo sync --no-tags:不下载标签,节省带宽。

📁 项目操作

repo start <新分支名> --all | <项目名>

为所有项目或某个项目创建一个新的分支。

1
repo start dev-feature --all

repo checkout <分支名>

切换分支。

1
repo checkout main

repo branches

显示所有项目当前所在的分支。

repo status

查看所有项目的修改状态(类似 git status)。

1
repo status

🚀 提交与上传

repo diff

查看工作目录中的更改(类似 git diff)。

repo stage

将更改添加到暂存区(类似 git add)。

1
repo stage -i device/rockchip/rk3576

repo commit

提交更改(类似 git commit)。

repo upload

将本地提交上传到 Gerrit 或其他代码审查系统。

1
repo upload

📦 其他实用命令

repo list

列出所有项目的名称。

repo path <project-name>

显示某个项目的本地路径。

repo forall

对所有项目或某些项目执行 shell 命令。

示例:查看所有项目的当前分支

1
repo forall -c 'git rev-parse --abbrev-ref HEAD'

🧪 高级命令(慎用)

repo rebase

对项目进行 rebase 操作。

1
repo rebase

repo prune

删除已经合并的分支。

repo selfupdate

更新 repo 工具本身。


📝 小贴士

  • repo 命令必须在一个已经 repo init 初始化过的目录中运行。
  • 所有 repo 的配置信息保存在 .repo/ 目录下。
  • 可以通过 repo help 查看完整帮助文档。

如果你是在使用 Android 源码 或其他基于 AOSP 的项目,这些命令非常有用。如果你是普通 Git 用户,可能更常使用的是原生的 git 命令。

需要我提供某个命令的详细说明或使用场景吗?