既有适合小白学习的零基础资料,也有适合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)**