zoukankan      html  css  js  c++  java
  • 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"

  • 相关阅读:
    【拓扑排序】【堆】CH Round #57
    【数论】【筛法求素数】【欧拉函数】bzoj2818 Gcd
    【数论】【枚举约数】【欧拉函数】bzoj2705 [SDOI2012]Longge的问题
    【暴力】vijos P1897 学姐吃牛排
    【kruscal】【最小生成树】【并查集扩展】bzoj3714 [PA2014]Kuglarz
    【set】bzoj2761 [JLOI2011]不重复数字
    【尺取法】【Multiset】bzoj1342 [Baltic2007]Sound静音问题
    【神奇の做法】bzoj2456 mode
    【博弈论】bzoj2463 [中山市选2009]谁能赢呢?
    【set】bzoj3715 [PA2014]Lustra
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/10066173.html
Copyright © 2011-2022 走看看