Android源码学习 使用Git和Repo进行版本管理
Android项目采用Git和Repo进行版本管理。在大多数情况下,Git都可以满足用户的需求。然而,由于Android项目过于庞大,想要简单、高效的管理这一百多个Git库,并不是一件容易的事情。Repo正是基于此需求,对Git命令部分封装,用来简化一些跨网络的操作。
安装Repo
- 创建repo所在的目录,并将目录加到PATH环境变量中
- $ mkdir ~/bin
- $ PATH=~/bin:$PATH
- 下载repo bootstrap脚本,并赋予可执行权限
- $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
- $ chmod a+x ~/bin/repo
- 创建工作目录
- $ mkdir WORKING_DIRECTORY
- $ cd WORKING_DIRECTORY
- 初始化Repo客户端
- $ repo init https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
- 同步获取源代码
- $ repo sync
Repo基本工作流程
- 使用repo start命令创建新的工作分支
- 改动代码
- 使用git add命令将改动通知Git
- 使用git commit命令提交改动
- 使用repo update命令将改动提交到代码评审服务器
Repo命令及工作流程图示
详情请参考 http://source.android.com/source/version-control.html
- *Initializing project platform/bionic ...
- fatal: '../platform/bionic.git' does not appear to be a git repository
- fatal: The remote end hung up unexpectedly
- error: Cannot fetch platform/bionic*
说明你的repo好久没有更新了,解决的办法很简单,更新repo工具,并且新建源码目录,重新执行repo init和repo sync就可以了。
Android源码学习 使用Git和Repo进行版本管理相关推荐
- Android源码学习之浅析SystemServer脉络
在之前的博文中<Android源码学习之如何创建使用JNI>和<Android源码学习之如何使用eclipse+NDK>中,浅谈了如何创建使用JNI和如何利用NDK工具开发创建 ...
- 【Android 源码学习】 init启动
目录 Android 源码学习 init启动 从main.cpp开始 init.cpp 部分逻辑 init启动zygote 属性服务 总结 Android 源码学习 init启动 Android 11 ...
- 【Android 源码学习】Zygote启动原理
Android 源码学习 Zygote启动原理 望舒课堂 Zygote进程启动原理学习记录整理. Zygote简介 Zygote是进程在init进程启动时创建的,进程本身是app_process,来源 ...
- 【Android 源码学习】系统架构和启动流程
Android 源码学习 系统架构和启动流程 望舒课堂 学习记录整理.以及以下参考文章的整理汇总.便于我个人的学习记录. 感谢IngresGe,Gityuan的精彩文章.为我们这些初探android系 ...
- 【Android 源码学习】SystemServer启动原理
Android 源码学习 SystemServer启动原理 望舒课堂 SystemServer进程启动原理学习记录整理. 参考文章: Android系统启动流程(三)解析SyetemServer进程启 ...
- android源码学习-Toast实现原理讲解
前言: 前些日志QQ群有朋友发了一个Toast的崩溃日志.Toast如此简单的用法怎么会崩溃呢?所以顺便就学习了一下Toast在源码中的实现,不算复杂,但内容挺多的,这里就来分享一下,方便读者. 一. ...
- 【Android 源码学习】SharedPreferences 源码学习
第一章:SharedPreferences 源码学习 文章目录 第一章:SharedPreferences 源码学习 Android SharedPreferences的缺陷 MMKV.Jetpack ...
- Android源码学习之工厂方法模式应用
主要内容: 工厂方法模式定义 工厂方法模式优势 工厂方法模式在Android源码中的应用 一.工厂方法模式定义 工厂方法模式定义: Define an interface for creating a ...
- Android源码学习之handler
前言 是滴!我又来了...今天来讲讲老少皆宜的大名鼎鼎的handler.是的,想必handler这个东西已经被讨论的天花乱坠了,也经常被我们用在实际开发中,但是其中很多细节知识还是值得我们去学习深究的 ...
- Android源码学习以及在工作中的应用01-TextView
有人说种下一棵树最好的时间是十年前,其次是现在.我已经浪费了整整十年,所以从现在起,脚踏实地,静下心来学习,一切从头开始.期望十年后的自己,无怨无悔. 我们在自动化测试的工作中,有一个这样的场景需求. ...
最新文章
- [文章存档]Kudu 的 Debug Console 窗口如何查看更多文件
- python iot平台_Python MQTT连接到Azure Iot中心
- SQL SERVER 数据库 怎么从一个服务器一个表中把数据插入到另一个服务器中的一个表内(纯复制)...
- 错误:No plugin found for prefix spring-boot in the current project and in the plugin groups
- Important table for SEGW
- ue4 网络代码分析
- 剑指offer面试题[14]-调整数组顺序使奇数位于偶数前面
- Android Canvas drawText实现中文垂直居中
- 如何让 Mac 加入网络帐户服务器?
- 《Flash ActionScript 3.0 动画高级教程》
- 算法竞赛资料整理分享
- B2B网关支付方案介绍
- 2019年CSDN排名前10名大神
- 通过读取学生txt,进而实现随机选人(包含对应人物照片)并用GUI实现
- Ceph分布式存储系统优化分析
- 购买服务器及宝塔部署环境指南
- 用友U8案例教程总账前台操作
- Panda 用法( 基础 )
- 从PE制作到恢复win引导
- css01-css2
热门文章
- 【2019】Power BI 9月产品功能更新解读
- python3之环境搭建以及基础语法
- (转)jquery对表单元素的取值和赋值
- UVA 1153 Keep the Customer Satisfied 顾客是上帝(贪心)
- EPM240T100的Pin
- Xampp的apache无法启动时的解决办法
- UltraWebGrid两种显示样式
- Linear Regression 和 Logistic Regression的不同(对比)
- Linux 命令大全(超全实用型)
- QEMU/KVM PCI Passthrough(i350) DPDK 网络性能测试