怎樣用git獲取指定的android linux kernel

進入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的下載功能,沒有上傳,所以就比較簡單,基本就那幾個分支的下載跟管理。




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章