博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 GIT 获得Linux Kernel的代码并查看,追踪历史记录
阅读量:6689 次
发布时间:2019-06-25

本文共 6022 字,大约阅读时间需要 20 分钟。

Linux kernel  的官方 GIT地址是:

可以从这个地址拿到 kernel 的 代码仓库。

1. 拿代码仓库

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

2. 查看状态:

$ git status  # On branch master  nothing to commit (working directory clean)

3. 更新本地的代码:

$ git pull  Already up-to-date.

 

4. 切换到分支:

$ git checkout linux-3.10.y   Checking out files: 100% (25952/25952), done.  Switched to branch 'linux-3.10.y'

 

5. 查看分支信息:

$ git branch    * linux-3.10.y    master

 

$ git branch  -a  * linux-3.10.y    master    remotes/origin/HEAD -> origin/master    remotes/origin/linux-2.6.11.y    remotes/origin/linux-2.6.12.y    remotes/origin/linux-2.6.13.y    remotes/origin/linux-2.6.14.y    remotes/origin/linux-2.6.15.y    remotes/origin/linux-2.6.16.y    remotes/origin/linux-2.6.17.y    remotes/origin/linux-2.6.18.y    remotes/origin/linux-2.6.19.y    remotes/origin/linux-2.6.20.y    remotes/origin/linux-2.6.21.y    remotes/origin/linux-2.6.22.y    remotes/origin/linux-2.6.23.y    remotes/origin/linux-2.6.24.y    remotes/origin/linux-2.6.25.y    remotes/origin/linux-2.6.26.y    remotes/origin/linux-2.6.27.y    remotes/origin/linux-2.6.28.y    remotes/origin/linux-2.6.29.y    remotes/origin/linux-2.6.30.y    remotes/origin/linux-2.6.31.y    remotes/origin/linux-2.6.32.y    remotes/origin/linux-2.6.33.y    remotes/origin/linux-2.6.34.y    remotes/origin/linux-2.6.35.y    remotes/origin/linux-2.6.36.y    remotes/origin/linux-2.6.37.y    remotes/origin/linux-2.6.38.y    remotes/origin/linux-2.6.39.y    remotes/origin/linux-3.0.y    remotes/origin/linux-3.1.y    remotes/origin/linux-3.10.y    remotes/origin/linux-3.11.y    remotes/origin/linux-3.12.y    remotes/origin/linux-3.13.y    remotes/origin/linux-3.14.y    remotes/origin/linux-3.2.y    remotes/origin/linux-3.3.y    remotes/origin/linux-3.4.y    remotes/origin/linux-3.5.y    remotes/origin/linux-3.6.y    remotes/origin/linux-3.7.y    remotes/origin/linux-3.8.y    remotes/origin/linux-3.9.y    remotes/origin/master

 

 

6. 创建一个新分支:

$ git checkout -b linux-3.10-charles   Switched to a new branch 'linux-3.10-charles'

 

$ git branch   * linux-3.10-charles    linux-3.10.y    master

 

7. 修改文件 init/main.c, 加入一行注释,然后 执行

git add .

 

 

$ git status  # On branch linux-3.10-charles  # Changes to be committed:  #   (use "git reset HEAD 
..." to unstage) # # modified: init/main.c #

 

 

e$ git add -i             staged     unstaged path    1:        +2/-0      nothing init/main.c    *** Commands ***    1: [s]tatus     2: [u]pdate     3: [r]evert     4: [a]dd untracked    5: [p]atch      6: [d]iff   7: [q]uit   8: [h]elp  What now>

 

如果选择  revert 命令,相当于 undo  "git add .":

 

What now> r             staged     unstaged path    1:        +2/-0      nothing [i]nit/main.c  Revert>>   reverted one path    *** Commands ***    1: [s]tatus     2: [u]pdate     3: [r]evert     4: [a]dd untracked    5: [p]atch      6: [d]iff   7: [q]uit   8: [h]elp  What now> q

 

这个时候再执行 git status:

$ git status  # On branch linux-3.10-charles  # Changes not staged for commit:  #   (use "git add 
..." to update what will be committed) # (use "git checkout --
..." to discard changes in working directory) # # modified: init/main.c # no changes added to commit (use "git add" and/or "git commit -a")

 

8. 提交修改:

$ git commit -a -m "This is just for testing git"  [linux-3.10-charles 9eabb78] This is just for testing git   1 file changed, 1 insertion(+), 1 deletion(-)

 

 9. 查看修改记录(git log):

commit 9eabb788b5c33efed589b1263aedd69b97e592ac  Author: Taotao Ding 
Date: Wed May 7 03:36:55 2014 +0900 This is just for testing git commit 5d897eedc505bb8af1f4865ae381eadbfd3bc8c1 Author: Greg Kroah-Hartman
Date: Tue May 6 07:56:24 2014 -0700 Linux 3.10.39 commit 6b32172a1d3cffa74067ced96612bd13658d4fcf Author: Felipe Balbi
Date: Tue Feb 25 10:58:43 2014 -0600 usb: musb: avoid NULL pointer dereference   

可以看到,修改已经被记录起来了。

 

 

git log  -p  commit 9eabb788b5c33efed589b1263aedd69b97e592ac  Author: Taotao Ding 
Date: Wed May 7 03:36:55 2014 +0900 This is just for testing git diff --git a/init/main.c b/init/main.c index e83ac04..febc1e9 100644 --- a/init/main.c +++ b/init/main.c @@ -10,7 +10,7 @@ */ #define DEBUG /* Enable initcall_debug */ - +/* This is a test line for git */ #include
#include
#include

 

10: 查看一个文件最近的修改记录:

 

 

$ git log master..HEAD init/main.c  commit 9eabb788b5c33efed589b1263aedd69b97e592ac  Author: Taotao Ding 
Date: Wed May 7 03:36:55 2014 +0900 This is just for testing git commit b7a52f5111bc53ffbfff96330621cbde80df6ba4 Author: Theodore Ts'o
Date: Tue Sep 10 10:52:35 2013 -0400 random: run random_int_secret_init() run after all late_initcalls commit 47d06e532e95b71c0db3839ebdef3fe8812fca2c upstream. The some platforms (e.g., ARM) initializes their clocks as late_initcalls for some unknown reason. So make sure random_int_secret_init() is run after all of the late_initcalls are run. Signed-off-by: "Theodore Ts'o"
Signed-off-by: Greg Kroah-Hartman

 

11: 比较两个分支的差异:

 

 

$ git log linux-3.10.y..linux-3.10-charles   commit 9eabb788b5c33efed589b1263aedd69b97e592ac  Author: Taotao Ding 
Date: Wed May 7 03:36:55 2014 +0900 This is just for testing git

当前分支也可写成  HEAD,所以:

 

 

$ git log linux-3.10.y..HEAD  commit 9eabb788b5c33efed589b1263aedd69b97e592ac  Author: Taotao Ding 
Date: Wed May 7 03:36:55 2014 +0900 This is just for testing git

 

reference:

 

P.S.

配置 username  和 user.email 的方法:

 git config    user.email "username"

git config   user.email "email@server"

这两个命令改变 .git/config 配置文件 (local)

 

 git config  --global   user.email "username"

git config   --global user.email "email@server"

git config --global core.editor "vim"

则改变全局的 git 配置文件  (~/.gitconfig)

 

转载地址:http://mkkoo.baihongyu.com/

你可能感兴趣的文章
Spring MVC之@RequestParam @RequestBody @RequestHead
查看>>
恒星内部的虫洞
查看>>
LaTeX特殊字符
查看>>
Golang 错误和异常处理的正确姿势
查看>>
JXL的api的简单介绍
查看>>
好久不写文章了
查看>>
声明和定义的区别(深入理解)
查看>>
java连接oracle小小demo
查看>>
分布式系统测试那些事儿——错误注入
查看>>
android-------非常好的图片加载框架和缓存库(Picasso)
查看>>
Titanium, PhoneGap, Sencha Touch, jQuery Mobile – Clearing up confusion
查看>>
eclipse如何部署Web工程到tomcat中
查看>>
在CentOS7上安装JDK1.8
查看>>
搜索和网页排名的数学原理
查看>>
Xcode项目中同一个名称不同位置 简单修改
查看>>
java设计模式-建造者模式
查看>>
Android Shell 快捷键
查看>>
iOS泛型
查看>>
Maven--pom.xml 配置详解之一
查看>>
oracle笔记
查看>>