repo总结【转】
本文转载自:https://blog.csdn.net/weixin_38599972/article/details/78982408
1、 repo start ##创建并切换分支
repo start newbranchname [--all | projectName]
刚克隆下来的代码是没有分支的,repo start是对git checkout –b 命令的封装。为指定的项目或所有项目(若使用—all参数),以清单文件中为设定的分支,创建特性分支。这条指令与git checkout –b 还是有很大的区别的,git checkout –b 是在当前所在的分支的基础上创建特性分支,而repo start是在清单文件设定分支的基础上创建特性分支。例如:
repo start stable --all
假设清单文件中设定的分支是gingerbread-exdroid-stable,那么执行以上指令就是对所有项目,在gingerbread-exdroid-stable的基础上创建特性分支stable。
repo start stable platform/build platform/bionic
假设清单文件中设定的分支是gingerbread-exdroid-stable,那么执行以上指令就是只对platform/build、platform/bionic两个项目,在gingerbread-exdroid-stable的基础上创建特性分支stable
2、repo branch ##查看分支
3、repo manifest ##查看清单文件
repo manifest -ro aaaaa.xml ##生成tag文件
4、repo status(查看文件状态)
是对git diff-index、git diff-filse命令的封装,同时显示暂存区的状态和本地文件修改的状态
5、repo abandon branchName ##删除分支
6、repo version ##查看repo版本号
7、repo grep ##在项目中进行内容查找
8、repo sync
默认同步所有仓,可以指定project 。
如果是第一次运行 repo sync ,则相当于 git clone,会把server所有内容都拷贝到本地。根据manifests中的xml文件中git的commit进行同步,这个xml文件在repo init的时候指定;
如果不是第一次运行 repo sync ,则相当于 git remote update ; git rebase origin/branch .将server上的code与本地合并;repo sync 会更新 .repo 下面的文件。如果在merge 的过程中出现冲突,这需要手动运行:git rebase --continue
注意:repo sync 是不会更新 .repo/repo这个仓的!
repo sync 的参数:
-j:开启多线程同步操作,会加快sync命令的执行速度。默认情况下,使用4个线程并发进行sync。
-c, –current-branch:只同步指定的远程分支。默认情况下,sync会同步所有的远程分支,当远程分支比较多的时候,下载的代码量就大。使用该参数,可以缩减下载时间,节省本地磁盘空间。
-d, –detach:脱离当前的本地分支,切换到manifest.xml中设定的分支。在实际操作中这个参数很有用,当我们第一次sync完代码后,往往会切换到dev分支进行开发。如果不带该参数使用sync, 则会触发本地的dev分支与manifest设定的远程分支进行合并,这会很可能会导致sync失败。
-f, –force-broken:当有git库sync失败了,不中断整个同步操作,继续同步其他的git库。
–no-clone-bundle:在向服务器发起请求时,为了做到尽快的响应速度,会用到内容分发网络(CDN, Content Delivery Network)。同步操作也会通过CDN与就近的服务器建立连接, 使用HTTP/HTTPS的$URL/clone.bundle来初始化本地的git库,clone.bundle实际上是远程git库的镜像,通过HTTP直接下载,这会更好的利用网络带宽,加快下载速度。
9、repo init
repo init -u xxx/manifest.git -b xxx -m xxx --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable
repo相当于一个批处理文件,使用repo脚本可以一次下载多个Git 仓库的内容,避免多次git clone,并能进行更好的管理和使用。
用 repo 拿的时候其实 .git 统统会放在 .repo 里,然后外面的.git都只是link。
repo脚本有如下可用参数:
--repo-url=URL
repo 工具本身的 git 库地址。缺省为:git://android.git.kernel.org/tools/repo.git
--repo-branch=REVISION
使用repo的版本库,即repo git库的分支或者里程碑名称。缺省为caf-stable
--no-repo-verify 设定不要对repo的里程碑签名进行严格的验证。
-u(--manifest-url) 设定清单库的Git服务器地址。
-b(--manifest-branch) 检出清单库的特定分支。
--mirror 只在repo第一次初始化的时候使用,建立本地镜像
-m(--manifest-name) 指定清单库中的某个清单为有效的清单文件。默认为default.xml。
--no-tags don't fetch tags
repo 命令参数的含义,可以执行repo help command(sync)来看。
命令rep init完成如下操作:
1.完成repo工具的完整下载,执行的repo脚本只是一个引导工具,并不是下载代码的脚本。
2.克隆清单库manifest.git到目录.repo/manifests/下。(地址来自于-u参数)
3.清单文件.repo/manifest.xml只是符号链接,它指向.repo/manifests/default.xml。
4.如果.repo/manifests/目录中有多个xml文件,repo init -m 参数可以任意选择其中一个,默认是default.xml。
清单文件解析:
一个清单库文件可以包含多个清单文件(标签include)和多个分支(标签revision)。
remote元素:<remote fetch="../" name="origin" review="http://IP:8080"/>
属性fetch:下载的相对路径
属性name:远程版本库命
属性review:基址
default元素:<default remote="origin" revision="branch-name" sync-j="4"/>
设置默认版本库和分支。各个项目(project元素)可以定义自己的remote和revision覆盖默认的配置。
project元素:
<project name="device/mediatek/common" path="device/mediatek/common">
<copyfile dest="mk" src="mk"/>
</project>
属性path:工作区克隆的位置
属性name:远程版本库的相对路径
子元素copyfile:定义了克隆后的一个附加动作,从src拷贝到dest
以下命令非常有用!
repo forall -p -c "git push origin HEAD:refs/heads/mtk_8.1_6763 2>&1 | tee push.log"
repo总结【转】的更多相关文章
- Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...
- 小白解决CENTOS7错误:Cannot find a valid baseurl for repo: base/7/x86_6
刚入手的MacBook想着学点东西,本汪还是决定玩玩CentOS服务器,安装好了VirtualBox + CentOS. 打开一看,懵逼了!命令行! 行吧,先装个图形界面: $sudo yum gro ...
- maven repo plugin archiver
Failure to transfer org.apache.maven:maven-archiver:pom:2.4.1 from http://repo1.maven.org/xxx was ca ...
- 安装CentOS7文字界面版后,无法联网,用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法
*无法联网的明显表现会有: 1.yum install出现 Error: cannot find a valid baseurl or repo:base 2.ping host会提示unknown ...
- centos7 cannot find a valid baseurl for repo base (转载)
centos7 cannot find a valid baseurl for repo base 今天在虚拟机下安装centosmini版本,安装后第一件事就是yum update 但是有错 ...
- repo 修改邮箱地址
需要重新运行 repo init 被带上参数: --config-name xx@a.com
- 解决:error: Cannot fetch repo (TypeError: expected string or buffer)
同步源码,问题重现: Fetching project platform/external/libopus Fetching project repo error: Cannot fetch repo ...
- 解决:error: .repo/manifests/: contains uncommitted changes
repo sync同步时提示出错: error: .repo/manifests/: contains uncommitted changes 解决方法: 1.cd 进入.repo/ ...
- 【CentOS】ifconfig命令 :command not found & yum命令 :cannot find a valid baserl for repo: base/7/x86_64
第一课,学习的是安装linux的远程连接.相信看阿铭视频的朋友们都会知道,第一个开机输入完root后要敲的命令就是--ifconfig 非常幸运,这迎来了我的第一个问题 这时候你会选择百度,会搜索到这 ...
- centos5.11 repo 安装mysql5.7
http://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html mysql yum repo 安装说明 http://d ...
随机推荐
- css属性 background
background 在一个声明中设置所有的背景属性. background-attachment 设置背景图像是否固定或者随着页面的其余部分滚动. background-color 设置元素的背景颜 ...
- AI案列 三条路
在生成点生成带有颜色的小球,小球走对应颜色的路 先做好三个小球,做成预制体 对应颜色的小球,除了自身颜色,其他颜色不要选 新建脚本: using System.Collections; using S ...
- programmatically detect whenever test run is in debug mode
if (System.Diagnostics.Debugger.IsAttached) // code or timeout value when running tests in debug ...
- Unity之fragment shader中如何获得视口空间中的坐标
2种方法: 1. 使用 VPOS 或 WPOS语义,如: Shader "Test/ScreenPos1" { SubShader { Pass { CGPROGRAM #prag ...
- 《大话设计模式》c++实现 装饰者模式
一.UML图 介绍 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创 ...
- python 爬qidian小说
import re import urllib.request from bs4 import BeautifulSoup import time url=input("第一章网址:&quo ...
- Maven的作用、用途、内涵、愿景
maven被许多人认为是一个构建工具.许多人最初是从熟悉ant而转到maven的,因此很自然地这样认为maven是一个构建工具.但是maven并不仅仅是一个构建工具,也不是ant的一个替代工具.mav ...
- Spark学习之路 (二十三)SparkStreaming的官方文档
一.SparkCore.SparkSQL和SparkStreaming的类似之处 二.SparkStreaming的运行流程 2.1 图解说明 2.2 文字解说 1.我们在集群中的其中一台机器上提交我 ...
- QT 继承QWidget && 继承QDialog
工作项目中,利用到Qt对话框,场景需求: 1. 一部分窗体需要继承自QWidget 2. 一部分窗体需要继承自QDialog 3. 两者均需要去掉标题栏图标,同时能够自由拖动. 如果两者分开继承实现, ...
- memcache、redis、mongoDB 如何选择?
不同的 Nosql,其实应用的场景各有不同,所以我们应该先了解不同Nosql 之间的差别,然后分析什么才是最适合我使用的 Nosql. Nosql 介绍 Nosql 的全称是 Not Only Sql ...