当前位置:   article > 正文

repo使用教程_repo init

repo init


一、概述

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


二、常用命令

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

1. repo init

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

在这里插入图片描述
运行命令后会在当前目录生成.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]
  • 1

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

  • 如果是第一次在本地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>]
  • 1

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

4. repo upload

repo upload [PROJECT_LIST]
  • 1

使用该命令,会将本地代码上传到远程服务器,一般为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
后续将持续更新

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/636852
推荐阅读
相关标签
  

闽ICP备14008679号