最开始下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,平时的使用基本上也就这些吧,自己又没有去管理一个工程,自然也用不到上传啊,拉分支啊,这些命令。
不过我现在啊,觉得分支这个东西还是得搞清楚的,有空看看,待下篇介绍给自己吧。