android 源码管理工具repo_android repo

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

repo


### 重要命令


#### help


repo安装完成后,可以使用help命令查看其他命令的使用方法



repo help


例如查看init 的使用方法



repo help init


 ![](https://img-blog.csdnimg.cn/ea70915e3b9e4459bbc6624563f005dd.png)


 


#### init



$ repo init -u []


在当前目录中安装 Repo。这会创建一个 `.repo/` 目录,其中包含用于 Repo 源代码和标准 Android 清单文件的 Git 代码库。该 `.repo/` 目录中还包含 `manifest.xml`,这是一个指向 `.repo/manifests/` 目录中所选清单的符号链接。


选项:


* `-u`:指定要从中检索清单代码库的网址。您可以在 `https://android.googlesource.com/platform/manifest` 中找到常见清单
* `-m`:在代码库中选择清单文件。如果未选择任何清单名称,则会默认选择 default.xml。
* `-b`:指定修订版本,即特定的清单分支。


#### sync



repo sync [<PROJECT_LIST>]


执行完‘repo sync’之后就可以在目录中执行‘repo sync’进行代码同步,这部操作类似git clone 。


`repo sync` 运行成功后,指定项目中的代码会与远程代码库中的代码保持同步。


* `-d`:将指定项目切换回清单修订版本。如果项目当前属于某个主题分支,但只是临时需要清单修订版本,则此选项会有所帮助。
* `-s`:同步到当前清单中清单服务器元素指定的一个已知的良好版本。
* `-f`:即使某个项目同步失败,系统也会继续同步其他项目。
* + j : 使用多线程进行同步,默认4线程
* -c: 只同步指定分支,默认同步所有分支。


### 其他命令


* upload



repo upload [<PROJECT_LIST>]


上传代码,这个上传代码并不是直接上传到服务器中,而是先上传到gerrit上进行review进行审核,审核通过之后才可以上传。


greeit服务器地址是在mainifests中指定的,.repo/manifest.xml




Gerrit说明:


* Reviewer:代码审阅人员可以是多个,是需要人为指定的。Gerrit提供网页的操作,可以填选Reviewer。当有多个git库的改动提交时,为了避免在网页上频繁的填选Reviewer这种重复劳动, upload提供了–re, –reviewer参数,在命令行一次性指定Reviewer
* Commit-ID:git为了标识每个提交,引入了Commit-ID,是一个SHA-1值,针对当次提交内容的一个Checksum,可以用于验证提交内容的完整性
* Change-ID:Gerrit针对每一个Review任务,引入了一个Change-ID,每一个提交上传到Gerrit,都会对应到一个Change-ID, 为了区分于Commit-ID,Gerrit设定Change-ID都是以大写字母 “I” 打头的。 Change-ID与Commit-ID并非一一对应的,每一个Commit-ID都会关联到一个Change-ID,但Change-ID可以关联到多个Commit-ID
* Patch-Set:当前需要Review的改动内容。一个Change-ID关联多个Commit-ID,就是通过Patch-Set来表现的,当通过`git commit --amend`命令修正上一次的提交并上传时, Commit-ID已经发生了变化,但仍可以保持Change-ID不变,这样,在Gerrit原来的Review任务下,就会出现新的Patch-Set。修正多少次,就会出现多少个Patch-Set, 可以理解,只有最后一次修正才是我们想要的结果,所以,在所有的Patch-Set中,只有最新的一个是真正有用的,能够合并的。
* diff



repo diff [<PROJECT_LIST>]


使用 `git diff` 显示提交与工作树之间的明显更改。


* download



repo download


upload是把改动内容提交到Gerrit,download是从Gerrit下载改动。与upload一样,download命令也是配合Gerrit使用的。


例如,要将[更改 23823](https://bbs.csdn.net/topics/618679757) 下载到您的平台/编译目录,请运行以下命令:



$ repo download platform/build 23823


`repo sync` 应该可以有效移除通过 `repo download` 检索到的任何提交。或者,您可以将远程分支检出,例如 `git checkout m/master`。


* forall



repo forall [<PROJECT_LIST>] -c


* status



$ repo status [<PROJECT_LIST>]


status用于查看多个git库的状态。实际上,是对`git status`命令的封装。


## 实际操作


下面以下载rockpi4 的安卓源码为例


### init


创建rockpi 文件夹,执行repo init 命令



$ mkdir rockpi && cd rockpi
$ repo init -u https://github.com/radxa/manifests.git
-b rockchip-android-10
-m rockchip-q-release.xml

-u 指定要从中检索清单代码库的网址

-b 在代码库中选择清单文件。如果未选择任何清单名称,则会默认选择 default.xml。

-m 指定修订版本,即特定的清单分支


![](https://img-blog.csdnimg.cn/69ddffe09c554956a1adb7d5e52f4ac3.png)


![](https://img-blog.csdnimg.cn/ee26668bbff04588b9698bbf58afa5ce.png)![](https://img-blog.csdnimg.cn/44a8335975e04e7e955a922b85376c13.png)



![img](https://img-blog.csdnimg.cn/img_convert/8d3d031be70eceb46490f8c3ed5b9397.png)
![img](https://img-blog.csdnimg.cn/img_convert/56d47027c6432bc1ec57d857380a2abb.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值