赞
踩
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理,是目前使用范围最广的版本管理工具。
Repo是Android为了方便管理多个git库而开发的Python脚本。repo的出现,并非为了取代git,而是为了让Android开发者更为有效的利用git。Android源码包含数百个git库,仅仅是下载这么多git库就是一项繁重的任务,所以在下载源码时,Android就引入了repo。
Android推荐的开发流程是:
1、repo init初始化工程,指定待下载的分支
2、repo sync下载代码
3、repo start将本地git库切换到开发分支(TOPIC BRANCH)
4、在本地进行修改,验证后,提交到本地
5、repo upload上传到服务器,等待review
拉取代码的命令如下:
repo init -u ssh://ppgerrit.com/Mstar648/manifest.git -b 648_cultraview -m ppos4.5.0_cultraview.xml
其中:
-u:指定一个URL,其连接到一个manifest仓库
-b:选择manifest仓库中的一个特殊分支
-m:在manifest仓库中选择一个xml文件
repo init要完成如下操作:
完成repo工具的完整下载,执行的repo脚本只是引导程序
clone清单库manifest.git (地址是-u后面的参数)
clone的清单库位于manifest.git中,clone到本地.repo/manifest中,.repo/manifest.xml只是符号链接,它指向的是.repo/manifests/default.xml
如果manifest中有多个xml文件,repo init可以任意选择其中一个,默认选择的是default.xml。
上面的拉取代码示例选择的是ppos4.5.0_cultraview.xml里面的配置,那么.repo/manifest.xml指向的是.repo/manifests/ppos4.5.0_cultraview.xml
执行了repo init 命令后,我们需要执行如下命令同步代码:
repo sync
参照清单文件.repo/manifest.xml克隆并同步版本库。如果项目版本库不存在,则执行repo sync命令相当于执行git clone;如果项目版本库存在,则相当于执行下面两条指令:
git remote update
相当于对每一个remote源执行了fetch操作
git rebase origin/branch
对当前分支的跟踪分支执行rebase操作
刚clone下来的代码是没有分支的,repo start 的实质就是对git checkout -b 的封装,可以为单个项目或所有项目以清单文件中已设定的分支为基础,在本地创建新的分支。
repo start 与 git checkout -b 的区别:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。