Repo 简介


1.Repo的作用

repo是Android为了方便管理多个git库而开发的Python脚本。Android源码包含数百个git库,仅仅是下载这么多git库就是一项繁重的任务,所以在下载源码时,Android就引入了repo。它的出现,并非为了取代git,而是为了让Android开发者更为有效的利用git。

2.Repo的使用

Repo的命令格式如下:

repo <COMMAND> <OPTIONS>

可选的的有:help、init、sync、upload、diff、download、forall、prune、start、status

###init###
repo init

  • -u:指定manifests这个远程git库的URL,manifests库是整个项目的清单。

  • -m, –manifest-name:指定所需要的manifests库中的清单文件。

  • -b, –manifest-branch:指定manifest.xml文件中的一个版本,也就是俗称的“分支”

###sync###

   repo sync

下载远程代码,并将本地代码更新到最新,这个过程称为“同步”。如果不使用任何参数,那么会对所有repo管理的进行同步操作;也可以指定若干要同步的PROJECT。 根据本地git库代码不同,同步操作会有不同的行为:

  • 当本地的git库是第一次触发同步操作时,那么,该命令等价于git clone,会将远程git库直接拷贝到本地

  • 当本地已经触发过同步操作时,那么,该命令等价于git remote update && git rebase
    origin/,就是当前与本地分支所关联的远程分支
    代码合并可能会产生冲突,当冲突出现时,只需要解决完冲突,然后执行git rebase --continue即可

当sync命令正确执行完毕后,本地代码就同远程代码保持一致了。在一些场景下,我们会用到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的 U R L / c l o n e . b u n d l e 来 初 始 化 本 地 的 g i t 库 , c l o n e . b u n d l e 实 际 上 是 远 程 g i t 库 的 镜 像 , 通 过 H T T P 直 接 下 载 , 这 会 更 好 的 利 用 网 络 带 宽 , 加 快 下 载 速 度 。 当 服 务 器 不 能 正 常 响 应 下 载 URL/clone.bundle来初始化本地的git库,clone.bundle实际上是远程git库的镜像,通过HTTP直接下载,这会更好的利用网络带宽,加快下载速度。 当服务器不能正常响应下载 URL/clone.bundlegitclone.bundlegitHTTPURL/clone.bundle,但git又能正常工作时,可以通过该参数,配置不下载$URL/clone.bundle,而是直接通过git下载远程git库

repo forall -c 'git status;git clean -xdf'   //常用的命令 单引号里面可以搭配git去干你想在单个project里面干的很多事。
一般git reset HEAD --hard 加git clean -xdf 就可以把编译过程中或者更改中产生的所有文件rollback,前提是你已经确认不要这些东西。

更加详细的介绍请参照下列链接
http://duanqz.github.io/2015-06-25-Intro-to-Repo

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
repo project 是指存储库项目,它是一种管理软件开发过程中代码存储和版本控制的工具。它使用版本控制系统(如Git)来跟踪和记录代码的变化,并将代码存储在一个中央位置,供团队成员随时查看和访问。repo project 可以帮助团队成员协同工作,共享代码,并保证每个人都使用相同版本的代码。 repo project 的主要功能包括代码分支管理、合并和冲突解决。它允许开发人员创建不同的分支,在每个分支上进行独立的开发工作,然后将更改合并到主分支中。如果多人同时修改同一个文件,可能会出现冲突,repo project 提供了解决冲突的机制,使团队能够协调一致地修改代码。 repo project 还提供了版本控制的历史记录和回滚功能。每次更改都会记录下来,开发人员可以随时查看先前的版本,并在需要时回滚到之前的版本。这有助于追踪和管理代码的演进,以及在出现问题时进行回退。 此外,repo project 还可以与其他工具集成,例如持续集成工具、项目管理工具和代码审查工具。这些集成可以进一步优化开发过程,提高团队的工作效率和代码质量。 综上所述,repo project 是一个强大的代码存储和版本控制工具,它可以帮助团队协同开发、追踪代码变化并保证代码的一致性和质量。在现代软件开发中,repo project 已成为必备的工具之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值