前言~

repo是一款安卓用于管理源码的工具,由python实现,基于git工具

本文介绍了repo的常用使用方式。

一,下载代码

1. repo init 初始化命令

此命令常用选项就那几个,此处取俩举例:

-u 后面跟清单文件仓库,manifests.git

--repo-url= 后面跟repo工具源码仓库 repo.git

repo init -u git@xxxxxxx:project/manifests.git --repo-url=git@xxxxxxxx:repo.git

运行此命令后,repo工具会根据manifest文件初始化配置,为后续同步(repo sync)做准备。

运行命令的路径下会新增.repo文件夹,里面存放了清单仓库,脚本文件等等~

.repo
├── manifests # 一个git库,包含default.xml文件,用于描述repo所管理的git库的信息
├── manifests.git # manifest这个git库的实体,manifest/.git目录下的所有文件都会链接到该目录
├── manifest.xml # manifests/default.xml的一个软链接
└── repo # 一个git库,包含repo运行的所有脚本

2.repo sync同步代码命令

当运行repo init后,就需要开始下载代码了,repo称之为同步。

第一次同步,相当于触发 git clone命令。

第二次同步,相当于触发git remote update && git rebase origin/<BRANCH>,就是当前与本地分支所关联的远程分支 代码合并可能会产生冲突,当冲突出现时,只需要解决完冲突,然后执行git rebase --continue即可。

该命令常用的可选参数:

-j :开启多线程同步,加快sync命令的执行速度。默认情况下,使用清单里指定的-j参数并发进行sync,如果没指定,则默认为4个。

*-c, –current-branch*:只同步指定的远程分支。默认情况下,sync会同步所有的远程分支,当远程分支比较多的时候,下载的代码量就大。使用该参数,可以缩减下载时间,节省本地磁盘空间

*-d, –detach*:脱离当前的本地分支,切换到manifest.xml中设定的分支。在实际操作中,这个参数很有用,当我们第一次sync完代码后,往往会切换到dev分支进行开发。如果不带该参数使用sync, 则会触发本地的dev分支与manifest设定的远程分支进行合并,这会很可能会导致sync失败

*-f, –force-broken*:当有git库sync失败了,不中断整个同步操作,继续同步其他的git库

整个同步时间以仓库体量有关,尽量利用多线程最大化速度~

运行完后,终端会显示sync成功完成,但此时仓库没有在任何一个分支上...

二,设置分支

1.新建分支

由于没有处在分支上,所以需要设置一个分支以进行后续操作

repo start branch-name --all

参数:

branch-name 为需要新建的分支名,master什么的

--all 为所有路径添加此分支

也可以指定项目路径创建分支,取消--all参数

2.运行repo branch可以查看当前分支~

3.同步一下

repo sync -j50

三,开始上传代码

我们假设已经修改了仓库代码

1.单独 上传

在各个仓库按照正常git仓库操作的方式进行操作

git status

git add

git commit -m "info....."

repo upload path_name

2.批量上传

这里会用到一个比较常用的命令:

repo forall -c "mycmd"

意思是在当前repo管理的所有仓库内,执行mycmd。

我们这里利用它批量上传:

repo forall -c "pwd && git add -A && git commit -m "上传信息" "

前面加一个pwd命令目的为查看当前执行的是哪个目录。

确认所有本地都提交了后~

运行repo upload 统一上传到仓库~

这里介绍的比较浅显,如不能满足需求请深入学习~

版权声明

码字不易,转载请注明原作者 ~ (from:https://erdong.work

最新文章

  1. oracle number型日期转date型日期
  2. Nim语言的模块化编程
  3. paip.重装系统需要备份的资料总结..v2.0 cad
  4. OC中runtime的使用
  5. Think in Java(Java编程思想)-第2章 一切都是对象
  6. 【转载】wireshark:no interface can be used for capturing in this system with the current configuration
  7. 淘宝API开发(三)
  8. 八成Java开发者解答不了的问题
  9. COJ 1006 树上操作
  10. 转 常用JQuery插件整理
  11. node.js(四)path优化(路径优化)
  12. 采用xml的方式保存数据
  13. 8.1 sikuli报错: 提示没有对应的javaw
  14. 关于Selenium.common.exceptions.WebDriverException: Message: Invalid locator strategy: css selector 的问题
  15. JSP表达式语音EF--2
  16. 关于istream_iterator&lt;int&gt;(cin)和istream_iterator&lt;int&gt;()的一点分析
  17. Windows10安装Docker
  18. Velocity.js初识
  19. 秒懂,Java 注解 (Annotation)你可以这样学
  20. 20145205 武钰 《网络对抗》Exp8 Web基础

热门文章

  1. Vite+React搭建开发构建环境实践
  2. Windows Admin Center无法访问
  3. 内网部署YApi
  4. Solutions:应用程序性能监控/管理(APM)实践---python/flask
  5. 使用Receiver接收告警信息
  6. TTD 专题 (第一篇):C# 那些短命线程都在干什么?
  7. crondtab定时任务%字符无法识别的处理
  8. spring boot使用swagger生成api接口文档
  9. 4.RabbitMQ系列之发布/订阅模式
  10. 齐博x2模型里边钩子的创建与使用