设为首页 收藏本站
查看: 561|回复: 0

[经验分享] 怎样用git获取指定的android linux kernel

[复制链接]

尚未签到

发表于 2016-3-12 10:44:19 | 显示全部楼层 |阅读模式
  进入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文件
  [iyunv@localhost mydroid]#cd kernel
  [iyunv@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

[iyunv@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 -dremotes/origin/android-2.6.39
呵呵,由于只是使用checkout的下载功能,没有上传,所以就比较简单,基本就那几个分支的下载跟管理。


  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-189724-1-1.html 上篇帖子: Linux环境下git定时更新 下篇帖子: 部署docker-gitlab
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表