如何取得Android源代码 android
Git 是 Linux Torvalds 为了帮助管理 Linux内核开发而开发的一个开放源码的分布式版本控制软件,它不一样于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库(repository),许多个工做目录(working copy),而像Git这样的分布式版本控制系统中(其余主要的分布式版本控制系统还有BitKeeper、Mercurial、GNU Arch、Bazaar、Darcs、SVK、Monotone等),每个工做目录都包含一个完整仓库,它们能够支持离线工做,本地提交能够稍后提交到服务器上。分布式系统理论上也比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统一般不会由于一两个节点而受到影响。 git
由于Android是由kernel、Dalvik、Bionic、prebuilt、build等多个Git项目组成,因此Android项目编写了一个名为Repo的Python的脚原本统一管理这些项目的仓库,使得Git的使用更加简单。 服务器
这几天William为了拿Android最新的sourcecode,学习了一下git和repo的一些基本操做,整理了一个如何取得Android代码的How-To,今天把他贴上来。 网络
1、Git的安装 curl
在Ubuntu 8.04上安装git只要设定了正确的更新源,而后使用apt-get就能够了,有什么依赖问题,就让它本身解决吧。其中cURL是一个利用URL语法在命令行下工做的文件传输工具,会在后面安装Repo的时候用到。 ionic
sudo apt-get install git-core curl 分布式
2、安装Repo 工具
首先确保在当前用户的主目录下建立一个/bin目录(若是没有的话),而后把它(~/bin)加到PATH环境变量中 学习
接下来经过cURL来下载Repo脚本,保存到~/bin/repo文件中 网站
curl http://android.git.kernel.org/repo >~/bin/repo
别忘了给repo可执行权限
chmod a+x ~/bin/repo
3、初始化版本库
若是是想把Android当前主线上最新版本的全部的sourcecode拿下来,咱们须要repo的帮助。
先创建一个目录,好比~/android,进去之后用repo init命令便可。
repo init -u git://android.git.kernel.org/platform/manifest.git
这个过程会持续很长的时间(至少能够好好睡一觉),具体要多少时间就取决于网络条件了
最后会看到 repo initialized in /android这样的提示,就说明本地的版本库已经初始化完毕,而且包含了当前最新的sourcecode。
若是想拿某个branch而不是主线上的代码,咱们须要用-b参数制定branch名字,好比:
repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
另外一种状况是,咱们只须要某一个project的代码,好比kernel/common,就不须要repo了,直接用Git便可。
git clone git://android.git.kernel.org/kernel/common.git
这也须要很多的时间,由于它会把整个Linux Kernel的代码复制下来。
若是须要某个branch的代码,用git checkout便可。好比咱们刚刚拿了kernel/common.get的代码,那就先进入到common目录,而后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样咱们就在本地创建了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android-goldgish-2.6.27同步。咱们能够经过git branch来列出本地的全部分支。
4、同步版本库
使用repo sync命令,咱们把整个Android代码树作同步到本地,一样,咱们能够用相似
repo sync project1 project2 …??
这样的命令来同步某几个项目
若是是同步Android中的单个项目,只要在项目目录下执行简单的
git pull
便可。
5、经过GitWeb下载代码
另外,若是只是须要主线上某个项目的代码,也能够经过GitWeb下载,在shortlog利用关键字来搜索特定的版本,或者找几个比较新的tag来下载仍是很容易的。
Git最初是为Linux内核开发而设计,因此对其余平台的支持并很差,尤为是Windows平台,必需要有Cygwin才能够。如今,得益于msysgit项目,咱们已经能够不须要Cygwin而使用Git了。另外,Git Extensions是一个很是好用的Windows Shell扩展,它能与资源管理器紧密集成,甚至提供了Visual Studio插件。它的官方网站上有一分不错的说明文档,感兴趣的朋友能够看一看。
至于Git的参考文档,我推荐Git Magic,这里还有一个Git Magic的中文版。