怎样用git获取指定的android linux kernel

来源:互联网 发布:arena软件安装 编辑:程序博客网 时间:2024/05/21 09:05

进入kernel/common,这里不需要用到repo,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
这可能需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。
如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了kernel/common.git的代码,那就先进入到common目录,然后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android- goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。

root@localhost mydroid]#git clone git://android.git.kernel.org/kernel/common.git  kernel  

//把服务器上的所有kernel都下载到本地kernel目录,想只下载一个版本的kernel是不可能的因为服务器上只有一个包含kernel的common.git文件,而没有单个版本kernel的.git文件

[root@localhost mydroid]#cd kernel

[root@localhost kernel]# ls
arch     CREDITS        drivers   include Kbuild MAINTAINERS net             samples   sound
block    crypto         firmware init     kernel Makefile     README          scripts   usr
COPYING Documentation fs        ipc      lib     mm           REPORTING-BUGS security virt

[root@localhost kernel]# git branch -a
* android-2.6.27
diff
remotes/origin/HEAD ->
origin/android-2.6.27
  remotes/origin/archive/android-2.6.25
  remotes/origin/archive/android-2.6.27
  remotes/origin/archive/android-2.6.29
  remotes/origin/archive/android-2.6.32
 

我们想要2.6.29内核,只要最后执行一下git checkout -b android-2.6.29 origin/android-2.6.29  把origin/archive/android-2.6.29
检出到本地android-2.6.29分支,至此就可以复制当前目录kernel里面的内核代码了,当然里面有一个隐藏的.git目录不要复制,那是用于管理版本代码的。

---------------------------------------------------

下面是其它作者的文章,对理解很有帮助:

使用git获取Android源码的时候一般需要使用repo脚本,但是使用repo脚本得到的源码并不带kernel内核的,所以如果需要下载kernel内核还必须使用git手动下载。。。

 

使用git的clone命令,把内核下载下来,到kernel文件夹

git clone git://android.git.kernel.org/kernel/common.git   kernel

下载完之后,进入kernel文件夹,然后可以查看所有的分支,以及当前源码版本分支

在这里需要提一下的就是,git有本地的分支跟远程服务器分支两个概念,当clone整个common.git的时候,本地只有android-2.6.36这个分支的,

使用下面命令可以查看当前目录的本地分支

git branch

在哥电脑上面,已经下载了32和35的源代码,所以分支有三个,前面带星号是当前版本的分支

 

bing@bing-laptop:~/android/kernel$ git branch

  android-2.6.32

  android-2.6.35

* android-2.6.36

然后加入-r参数可以查看远程服务器的分支
bing@bing-laptop:~/android/kernel$ git branch -r
  origin/HEAD -> origin/android-2.6.36
  origin/android-2.6.35
  origin/android-2.6.36
  origin/android-2.6.37
  origin/android-2.6.38
  origin/android-2.6.39
  origin/archive/android-2.6.25
  origin/archive/android-2.6.27
  origin/archive/android-2.6.29
  origin/archive/android-2.6.32
  origin/archive/android-gldfish-2.6.29
  origin/archive/android-goldfish-2.6.27
  origin/linux-bcm43xx-2.6.39
  origin/linux-wl12xx-2.6.39

使用-a参数则显示本地和远程服务器的分支,并且远程服务器分支会加前缀"remotes/"

bing@bing-laptop:~/android/kernel$ git branch -a

  android-2.6.32

  android-2.6.35

* android-2.6.36

  remotes/origin/HEAD -> origin/android-2.6.36

  remotes/origin/android-2.6.35

  remotes/origin/android-2.6.36

  remotes/origin/android-2.6.37

  remotes/origin/android-2.6.38

  remotes/origin/android-2.6.39

  remotes/origin/archive/android-2.6.25

  remotes/origin/archive/android-2.6.27

  remotes/origin/archive/android-2.6.29

  remotes/origin/archive/android-2.6.32

  remotes/origin/archive/android-gldfish-2.6.29

  remotes/origin/archive/android-goldfish-2.6.27

  remotes/origin/linux-bcm43xx-2.6.39

  remotes/origin/linux-wl12xx-2.6.39

git checkout -b "A" 表示新建一个名为“A”的本地分支,并且切换到该分支上
把指定的远程分支切换到你新建的一个本地分支的,命令格式如下:
git checkout -b "本地分支名" "你所需要下载的分支"
例如我要下载2.6.38的内核到我新建的本地分支为:
git checkout -b android-2.6.38 origin/android-2.6.38
则我本机的分支结构为:
bing@bing-laptop:~/android/kernel$ git branch
  android-2.6.32
  android-2.6.35
  android-2.6.36
* android-2.6.38
如果需要在本地分支之间切换,则使用
git branch "分支名"
对于不需要的分支可以使用branch命令删除
git branch -d remotes/origin/android-2.6.39
呵呵,由于只是使用checkout的下载功能,没有上传,所以就比较简单,基本就那几个分支的下载跟管理。




 

原创粉丝点击