以下是关于 repo
工具(用于管理多个 Git 仓库)的常用命令整理:
1. 初始化和配置
命令 | 说明 |
---|
repo init -u <MANIFEST_URL> -b <BRANCH> | 初始化 Repo 仓库,指定 manifest 仓库地址和分支 |
repo init --depth=1 | 浅克隆(仅拉取最近提交,节省空间) |
repo init -m <MANIFEST_FILE> | 使用指定的 manifest 文件(默认 default.xml ) |
repo init --repo-url=<REPO_TOOL_URL> | 指定 Repo 工具自身的仓库地址 |
示例:
repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r1
2. 同步代码
命令 | 说明 |
---|
repo sync | 同步所有项目代码(拉取最新) |
repo sync <PROJECT1> <PROJECT2> | 仅同步指定项目 |
repo sync -j4 | 多线程同步(例如 4 个线程) |
repo sync -c | 仅同步当前分支代码(--current-branch ) |
repo sync -d | 切换回 manifest 指定的提交(--detach ) |
3. 分支管理
命令 | 说明 |
---|
repo start <BRANCH_NAME> --all | 为所有项目创建新分支 |
repo start <BRANCH_NAME> <PROJECT> | 为指定项目创建分支 |
repo branches | 查看所有项目分支状态 |
repo checkout <BRANCH_NAME> | 切换所有项目到指定分支 |
repo abandon <BRANCH_NAME> | 删除所有项目的指定分支 |
4. 提交代码
命令 | 说明 |
---|
repo upload | 推送本地提交到代码审核系统(如 Gerrit) |
repo upload <PROJECT> | 仅推送指定项目 |
repo upload --reviewers=<EMAIL> | 指定评审人 |
repo forall -c 'git commit -a -m "Message"' | 在所有项目中执行提交操作 |
5. 查看状态和差异
命令 | 说明 |
---|
repo status | 查看所有项目的文件修改状态 |
repo diff | 查看所有项目的代码差异 |
repo forall -c 'git log --oneline' | 查看所有项目的提交历史 |
6. 切换版本和清理
命令 | 说明 |
---|
repo forall -c 'git reset --hard' | 重置所有项目的修改 |
repo forall -c 'git clean -dfx' | 清理所有项目的未跟踪文件 |
repo sync --force-sync | 强制覆盖本地代码 |
7. 其他常用命令
命令 | 说明 |
---|
repo list | 列出所有管理的项目 |
repo info | 显示 Repo 和 Git 的版本信息 |
repo prune | 删除已合并的分支 |
repo grep <PATTERN> | 在所有项目中搜索代码模式 |
8. 高级操作
命令 | 说明 |
---|
repo manifest -r -o manifest.xml | 导出当前 manifest 文件 |
repo forall -c 'git fetch origin' | 为所有项目执行 git fetch |
repo selfupdate | 更新 Repo 工具自身 |
常见场景示例
场景 1:拉取最新代码并创建开发分支
repo sync -j8
repo start dev-feature --all
场景 2:提交所有修改并推送审核
repo forall -c 'git add -A && git commit -m "Fix bugs"'
repo upload --reviewers=alice@example.com
场景 3:回退到指定版本
repo sync -d
repo forall -c 'git reset --hard'
如果有特定场景或更复杂的需求(如定制 manifest),可以进一步补充说明!