使用repo上传代码
前言~
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)
本文来自博客园,作者:耳东Sir,转载请注明原文链接:https://www.cnblogs.com/erdongsir/p/16900243.html