1.Git和Repo的安装
首先确保在当前用户的主目录下创建一个/bin目录(如果没有的话),然后把它(~/bin)加到PATH环境变量中。
a@ubuntu:~$vim.bashrc
添加:exportPATH=$PATH:~/bin
a@ubuntu:~$source.bashrc
a@ubuntu:~$echo$PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/a/bin
a@ubuntu:~$ sudo apt-get install git-corea@ubuntu:~$ sudo apt-get install curl
这两条命令会从互联网的软件仓库中安装git-core和curl。
这句命令会下载repo脚本文件到当前主目录的bin目录下,并保存在文件repo中。
最后我们需要给repo文件可执行权限
a@ubuntu:~$ sudo chmod a+x /home/a/bin/repo
接下来我们就可以利用repo脚本和Git、curl软件获取Android的源代码了。
2、初始化版本库
如果是想把Android当前主线上最新版本的所有的sourcecode拿下来,我们需要repo的帮助。
先建立一个目录,比如~/myandroid,进去以后用repoinit命令即可。
repoinit-ugit://android.git.kernel.org/platform/manifest.git
这个过程会持续很长的时间,具体要多少时间就取决于网络条件了
最后会看到 repo initialized in /myandroid这样的提示,就说明本地的版本库已经初始化完毕,并且包含了当前最新的sourcecode。
需要之后调用 repo sync
如果想拿某个branch而不是主线上的代码,我们需要用-b参数制定branch名字,比如:repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
另一种情况是,我们只需要某一个project的代码,比如kernel/common,就不需要repo了,直接用Git即可。
gitclonegit://android.git.kernel.org/kernel/common.git
这也需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。
如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了kernel/common.get的代码,那就先进入到common目录,然后用下面的命令:
gitcheckoutorigin/android-goldfish-2.6.27-bgoldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android-goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。
这里我们以android-2.1_r1这个分支为例:
a@ubuntu:~$mkdirmyandroid
a@ubuntu:~$cdmyandroid
a@ubuntu:~/myandroid$repoinit-ugit://android.git.kernel.org/platform/manifest.git-bandroid-2.1_r1
repo initialized in /home/a/myandroid
3、同步版本库
使用reposync命令,我们把整个Android代码树做同步到本地,同样,我们可以用类似
repo sync project1 project2 … 这样的命令来同步某几个项目
如果是同步Android中的单个项目,只要在项目目录下执行简单的git pull 即可。
a@ubuntu:~/myandroid$ repo sync
下载android-sdk-2.1_r1版本
a@ubuntu:~$#mkdirandroid-sdk-2.1_r1
a@ubuntu:~$#cdandroid-sdk-2.1_r1/
a@ubuntu:~android-sdk-2.1_r1#repoinit-ugit://android.git.kernel.org/platform/manifest.git-bandroid-sdk-2.1_r1
a@ubuntu:~$android-sdk-2.1_r1#reposync