git之repo的使用

repo

参考:git基础教程(41)repo仓库管理工具介绍_面向工作git基础教程-CSDN专栏git基础教程(41)repo仓库管理工具介绍_面向工作git基础教程-CSDN专栏

repo 命令:

repo init

repo init -u <URL> [<OPTIONS>]

-u : 指定manifests远程git地址的URL

-m:指定manifests库中的清单文件

-b:指定manifest.xml文件中的一个版本,,也就是俗称的“分支”

repo sync

repo sync [PROJECT_LIST]

拉取远程代码,并同步更新本地代码:

常用参数:

-j:开启多线程同步操作,加快速度

-c: 只是同步指定的远程分支

-d: 脱离当前的本地分支

1. repo sync -f

这种机制确保了 repo sync 在网络不稳定的情况下能够高效地完成同步,无需担心重复下载已完成的内容。

  1. 在使用 repo sync 时,默认情况下工具会输出一些同步进度信息,但不够详细。若要更清晰地查看下载进度,可以通过以下方法:

  2. 利用 repo sync 自带的 verbose 模式**加上 -v(verbose)参数可以显示更详细的同步过程,包括每个仓库的克隆 / 更新进度:

repo sync -v
  1. 若需要更详细的输出(如 Git 操作的具体细节),可以使用 -vv 或 -vvv 增加详细程度:
repo sync -vv
  1. 查看已下载的文件大小可以在另一个终端中,通过 du 命令查看当前同步目录的总大小变化,间接了解进度:
# 实时监控目录大小变化(按Ctrl+C退出)
watch -n 5 du -sh <同步目录路径>

其中 <同步目录路径> 替换为你执行 repo sync 的根目录(通常是你初始化 repo 的目录)。

  1. 检查单个仓库的同步状态repo sync 会同步多个 Git 仓库,你可以进入具体的仓库目录,用 Git 命令查看单个仓库的同步进度:

bash

# 进入某个仓库目录
cd <同步目录>/<仓库名>
# 查看当前Git操作状态
git status

这些方法结合使用,可以比较全面地了解 repo sync 的下载和同步进度。其中,-v 参数是最直接的方式,能看到每个仓库的克隆进度、已完成百分比等信息。

repo upload

repo upload [PROJECT_LIST]

把本地文件上传到远程仓库。

upload命令首先会找出本地分支从上一次同步操作以来发生的改动,然后会将这些改动生成Patch文件,上传至Gerrit服务器。 如果没有指定PROJECT_LIST,那么upload会找出所有git库的改动;如果某个git库有多个分支,upload会提供一个交互界面,提示选择其中若干个分支进行上传操作。

repo start

repo start <BRANCH_NAME> [<PROJECT_LIST>]

在指定的PROJECT切换到指定的分支,“-all ” 参数可以对所有的项目执行切换。当第一次sync完代码后,可以通过start命令将git库切换到开发分支,避免在匿名分支上工作导致丢失改动内容的情况。

repo download

repo download <TARGET> <CHANGE>

从Geriit下载改动,对应upload

  • TARGET:指定要下载的PROJECT,譬如platform/frameworks/base, platform/packages/apps/Mms
  • CHANGE:指定要下载的改动内容。这个值不是Commit-ID,也不是Change-ID,而是一个Review任务URL的最后几位数字。 譬如,AOSP的一个Review任务https://android-review.googlesource.com/#/c/23823/,其中23823就是。

repo purne

repo prune [<PROJECT_LIST>]

删除指定项目中已经合并的分支。(合并后的分支属于无用分支)

repo forall

repo forall [PROJECT_LIST] -c <COMMAND>

对指定的git库执行**-c**参数制定的命令序列。

repo forall frameworks/base packages/apps/Mms -c “git status”

repo status

repo status [<PROJECT_LIST>]

查看多个或单个git库的状态

Android推荐的开发流程是:

  1. repo init初始化工程,指定待下载的分支
  2. repo sync下载代码
  3. repo start将本地git库切换到开发分支(TOPIC BRANCH)
  4. 在本地进行修改,验证后,提交到本地
  5. repo upload上传到服务器,等待review
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐