最開始下linux內核代碼的緣故,知道了git,嗯,分佈式的版本管理系統,聽起來不錯。
得先學會使用吧,最初始的目的就是下載代碼,於是先學會了下載代碼的命令:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
一直以來該方法屢試不爽,直到有一天我想下載android內核的代碼,於是敲了下面的命令:
git clone https://android.googlesource.com/kernel/common kernel-comm
下載完成後進入目錄想看下代碼時我傻了,才發現目錄下除了.git外什麼也沒有(當然.和..還是有的)
百思不得其解,趕緊上網去查,才知道原來是這個工程有比較多的分支,而主分支上沒有代碼,怎麼辦呢
於是看了下遠端有哪些分支:
git branch -r
origin/HEAD
origin/android-2.6.39
origin/android-3.0
origin/android-3.3
origin/android-3.4
origin/android-3.4-compat
origin/coupled-cpuidle
origin/master
我們本地已經有了版本庫,只要把相應分支的代碼checkout出來一份應該就可以了吧:
git checkout origin/android-3.4
待到命令執行完,ls了一下,果然:
ls
arch CREDITS drivers include Kbuild lib mm REPORTING-BUGS security usr
block crypto firmware init Kconfig MAINTAINERS net samples sound virt
COPYING Documentation fs ipc kernel Makefile README scripts tools
於是想明白了,我們使用git clone是把整個版本庫下載下來了,並且會默認在本地創建master分支。
而如果湊巧master分支上沒有代碼的話則目錄就爲空了,這時候我們就需要從版本庫checkout某個分支的代碼下來。
另外git branch -a可以查看到所有的分支信息。
下載了代碼,肯定會需要更新的嘛,看了下git命令的輸出
git pull搞定了。
pull到自己感興趣的合入時,就想看看別人改了什麼,有需求就有谷歌啊,於是又發現了一條很好玩的命令:
git log -p
該命令可以查看所有提交的信息,包括其diff噢,本來試了下git log和git diff都不咋好用,原來是加上參數纔好用,阿彌陀佛。
ok,平時的使用基本上也就這些吧,自己又沒有去管理一個工程,自然也用不到上傳啊,拉分支啊,這些命令。
不過我現在啊,覺得分支這個東西還是得搞清楚的,有空看看,待下篇介紹給自己吧。