repo 命令

Android 使用 Git 作为代码管理工具,开发了 Gerrit 进行代码审核以便更好的对代码进行集中式管理,还开发了 Repo 命令行工具,对 Git 部分命令封装,将 百多个 Git 库有效的进行组织。要想直接克隆和管理这百多个 Git 库,还真不是一件简单的事情。有了repo就高效多了。

建议创建两个目录。分别用于获取开发版本号和最新版本号。假设开发的目标环境是develop,则创建develop和android两个目录。当中develop目录用于获取develop分支,而android目录用于获取主分支(master)。

获取主分支的方法例如以下:

 #repo init -u https://android.googlesoutce.com/platform/manifest

获取特定分支的方法例如以下:

 #repo init -u https://android.googlesource.com/platform/manifest -b develop

在初始化完毕过程中,须要设置开发人员的名字、邮箱地址,以及一些状态显示,通常建议使用Gmail邮箱。在初始化完毕后,就可以下载源码。下载源码的方法例如以下:

#repo sync

注意:repo不支持端点续传,repo的下载是基于单个project进行的,在Android中。眼下包括了170个左右的project,其列表位于.repo\project.list中。处于开发阶段的project和内核project不会被下载。在下载完毕前,源码会被隐藏,直到下载完毕后。开发人员才干看到下载的源码。

 

 

初始化repo仓:

repo init -u http://mgit-tm.mydevelop.com/hap/manifest.git    初始化repo仓

repo init -u http://mgit-tm.mydevelop.com/hap/manifest.git -b release_develop --no-repo-verify --repo-branch=stabel   初始化repo仓并切换到release_develop 分支

 

同步代码:

repo sync     同步所有代码

.repo/cat manifest.xml     查看所有projection项目

repo sync  framework/base     同步单个projection项目代码,此处同步的是framework/base这个模块的代码

 

分支:

.repo/manifests git branch -a     查看repo分支,只能查看当前初始化仓https://android.googlesoutce.com/platform/manifest下面包含的所有分支,比如主线master和develop两个分支,如果他们分别存储在-u https://android.googlesoutce.com/platform/manifest和-u https://android.googlesoutcedevelop.com/platform/manifest下,那就需要分别获取。

repo init -u https://android.googlesource.com/platform/manifest -b master     初始化master仓,如果在develop仓下执行就是讲repo从develop切换到master仓,其实就是重新初始化master,切分支时,当前分支如果有改动没有提交,直接切就会报错,需要提交或者清除修改

 

回滚:

repo forall -c git reset --hard     repo强制回滚清除修改代码,参考git reset --hard

 

添加修改:

git add     在对应的projection下进行

 

提交:

git commit -m “”     在对应的projection下进行

 

推送:

repo upload     在repo根目录进行,多个projection有修改时,会出现提示每个projection的修改信息,全部都是带有注释的,把需要提交的commit信息前面的注释符删掉,保存,即可完成提交

git push origin 当前分支:refs/for/远程分支   在projection下进行,将当前projection的修改推送到对应远程分支

特别注意:reop仓初始化的时候,我们使用了分支,现在我们projection修改之后又有分支,这两个是不一样的,repo仓的分支,是用来区分安卓系统的大版本的,如:android6.0 、android7.0、android8.0、android主线、android开发分支。每一个分支对应着系统的整套代码,大公司在维护时,还会新建很多的产品分支,用来适配各个产品,这些都由repo来控制。进入一个大版本分支如android8.0的文件夹,会有170个左右的projection,每个projection都是一个git仓,每个git仓也可以有多个分支,甚至每个projection的分支都可以不一样,但是为了便于管理,一般都会将所有的git仓的分支都统一,比如,一般就会统一为master和develop两个分支。所以,如果我们使用 init -u https://android.googlesource.com/platform/manifest -b android8.0 来初始化并下载了anroid8.0的所有代码,如果涉及多个projection的修改,可以在对应projection添加修改信息,最后在repo的根目录repo load提交生成gerrit,也可以分别在projection中添加修改信息,然后分别git push到对应分支,projection的默认分支名可以从projection的.git/config中获取到。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值