赞
踩
repo是Android为了方便管理多个git库而开发的python脚本,是为了更有效的利用git,现在也用于Harmony OS开发
下面从实践流程来讲一下常用的命令
repo init -u <URL> [<OPTIONS>]
运行命令后会在当前目录生成.repo隐藏子目录,类似于.git,.repo下文件目录如上图所示
常用参数:
-u:指定manifests这个远程git库的URL,默认情况,这个git库只包含了default.xml一个文件
-m,-manifest-name:指定所需要的manifests库中的清单文件。默认情况下,会使用maniftests/default.xml
-b,-manifest-branch:指定manifest.xml文件中的一个版本,也就是俗称的“分支”
repo sync [PROJECT_LIST]
运行该命令,会将远程代码同步到本地
git clone
git remote update
git rebase origin/<BRANCH>
常用参数:
-c,-current-branch:只同步指定的远程分支,默认情况下,会同步所有的远程分支,但这样代码量会大
-d,-detach:脱离当前的本地分支,切换到manifest.xml中设定的分支。在实际操作中,这个参数很有用,当我们第一次sync完代码后,往往会切换到dev分支进行开发。如果不带该参数使用sync, 则会触发本地的dev分支与manifest设定的远程分支进行合并,这会很可能会导致sync失败
repo start <BRANCH_NAME> [<PROJECT_LIST>]
在sync完代码后,所有git库默认都是在一个匿名分支上(no branch),很容易会由于误操作导致丢失代码修改。
在第一次sync完代码后,可以通过该命令将git库切换到开发分支BRANCH_NAME,避免在匿名分支上工作导致丢失改动内容的情况。该命令是对git checkout -b
和git checkout
命令的封装。
repo upload [PROJECT_LIST]
使用该命令,会将本地代码上传到远程服务器,一般为Gerrit服务器,Gerrit服务器的地址是在.repo/manifests.xml中指定的。如果没有指定PROJECT_LIST,那么upload会找出所有git库的改动;如果某个git库有多个分支,upload会提供一个交互界面,提示选择其中若干个分支进行上传操作。
参考:https://blog.csdn.net/q1449660223/article/details/117991666
后续将持续更新
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。