一.工具安装
1. 在ubuntu下安装git和curl工具,其中curl是一个利用URL语法在命令行下工作的文件传输工具
sudo apt-get install git-core curl
2.从网上down下来Repo脚本
首先确保在当前用户的主目录下创建一个/bin目录(如果没有的话),然后把它(~/bin)加到PATH环境变量中,这样做是因为我们要将repo脚本放在这个目录里,以后执行repo的时候系统就能到了
接下来通过curl来下载Repo脚本,保存到~/bin/repo文件中
curl android./repo >~/bin/repo
别忘了给repo可执行权限
chmod a+x ~/bin/repo
二.下面是设置gitproxy的过程,如果直接访问网络,貌似可以不用设置,可跳过
1.创建~/.gitconfig文件,内容为:
android最新版
[core]
gitProxy = /home/zhangchunyan/bin/git-proxy
2.sudo apt-get install corkscrew
3.将/usr/bin/corkscrew拷贝到~/bin/下
4.编写shell脚本,命名为git-proxy(注意增加上可执行权限),内容为:
#!/bin/sh
exec ~/bin/corkscrew 192.168.177.7 8080  android. 9418
其中192.168.177.7 8080需要根据你自己的代理服务器进行设置
zhangchunyan@zhangchunyan-desktop:~/bin$ git config --global core.gitProxy '/home/zhangchunyan/bin/git-proxy'
三.之后就可以使用命令git下载源码了:
1、初始化版本库,取得Android当前主线上最新版本的所有的sourcecode:
先建立一个目录,比如~/android,进去以后先初始化repo
用repo init -u git://android./platform/manifest.git命令,成功后会在~/android下生成.repo文件夹
用repo sync命令获得当前最新的sourcecode
单独下载内核,用这个
git clone git://android./kernel/linux-2.6.git
2.如果想拿某个branch而不是主线上的代码,我们需要用-b参数制定branch名字,比如:
repo init -u git://android./platform/manifest.git -b froyo
另一种情况是,我们只需要某一个project的代码,比如kernel/common,就不需要repo了,直接用Git即可。
git clone git://android./kernel/common.git
这也需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。
如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了的代码,那就先进入到common目录,然后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android-goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。
3.同步版本库
使用repo sync命令,我们把整个Android代码树做同步到本地,同样,我们可以用类似
repo sync project1 project2 …
这样的命令来同步某几个项目
如果是同步Android中的单个项目,只要在项目目录下执行简单的
git pull即可。
4.通过GitWeb下载代码
外,如果只是需要主线上某个项目的代码,也可以通过GitWeb下载,在shortlog利用关键字来搜索特定的版本,或者几个比较新的tag来下载还是很容易的。
Git最初是为Linux内核开发而设计,所以对其他平台的支持并不好,尤其是Windows平台,必须要有Cygwin才可以。现在,得益于msysgit项目,我们已经可以不需要Cygwin而使用Git了。另外,Git Extensions是一个非常好用的Windows Shell扩展,它能与资源管理器紧密集成,甚至提供了Visual Studio插件。它的上有一分不错的说明文档,感兴趣的朋友可以看一看。
至于Git的参考文档,我推荐Git Magic,这里还有一个Git Magic的中文版。
参考自:www.williamhua/2009/04/29/git-and-repo-for-dummies/

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。