repo使用教程


一、概述

repo是Android为了方便管理多个git库而开发的python脚本,是为了更有效的利用git,现在也用于Harmony OS开发


二、常用命令

下面从实践流程来讲一下常用的命令

1. repo init

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

在这里插入图片描述
运行命令后会在当前目录生成.repo隐藏子目录,类似于.git,.repo下文件目录如上图所示

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

常用参数:
-u:指定manifests这个远程git库的URL,默认情况,这个git库只包含了default.xml一个文件
-m,-manifest-name:指定所需要的manifests库中的清单文件。默认情况下,会使用maniftests/default.xml
-b,-manifest-branch:指定manifest.xml文件中的一个版本,也就是俗称的“分支”

2. repo sync

repo sync [PROJECT_LIST]

运行该命令,会将远程代码同步到本地

  • 如果是第一次在本地git库使用此操作,则该命令相当于git clone
  • 如果不是第一次,则该命令等价于
    -git remote update
    -git rebase origin/<BRANCH>

常用参数:
-c,-current-branch:只同步指定的远程分支,默认情况下,会同步所有的远程分支,但这样代码量会大
-d,-detach:脱离当前的本地分支,切换到manifest.xml中设定的分支。在实际操作中,这个参数很有用,当我们第一次sync完代码后,往往会切换到dev分支进行开发。如果不带该参数使用sync, 则会触发本地的dev分支与manifest设定的远程分支进行合并,这会很可能会导致sync失败

3. repo start

repo start <BRANCH_NAME> [<PROJECT_LIST>]

在sync完代码后,所有git库默认都是在一个匿名分支上(no branch),很容易会由于误操作导致丢失代码修改。
在第一次sync完代码后,可以通过该命令将git库切换到开发分支BRANCH_NAME,避免在匿名分支上工作导致丢失改动内容的情况。该命令是对git checkout -bgit checkout命令的封装。

4. repo upload

repo upload [PROJECT_LIST]

使用该命令,会将本地代码上传到远程服务器,一般为Gerrit服务器,Gerrit服务器的地址是在.repo/manifests.xml中指定的。如果没有指定PROJECT_LIST,那么upload会找出所有git库的改动;如果某个git库有多个分支,upload会提供一个交互界面,提示选择其中若干个分支进行上传操作。


三、使用实践

  1. repo init:初始化工程,指定代下载的分支
  2. repo sync -c --no-tags:下载代码,不获取标签
  3. repo start dev --all:本地所有git库切换到开发分支
  4. 在本地修改验证后,提交到本地
  5. repo upload:上传Gerrit服务器,等待review

总结

参考:https://blog.csdn.net/q1449660223/article/details/117991666
后续将持续更新

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值