源代码管理工具GIT之使用

源代码管理工具GIT之使用

Kernel Hackers' Guide to git http://linux.yyz.us/git-howto.html

准备开始

安装 git

可以从以下网址下载最新稳定版本:
http://www.kernel.org/pub/software/scm/git/ 

下载Linux内核树

$ git clone /

git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/ linux-2.6

注意:内核树非常大,这会下载超过300M的压缩数据

基本任务

更新本地内核树到最新的2.6.x上游内核树(快速合并)

$ cd linux-2.6

$ git pull / git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

 

 

或者更简单地,从已克隆的本地路径中直接拉过来:

$ cd linux-2.6

$ git pull

撤销所有本地修改:

$ git checkout -f

签入您的修改

# 转到存储库

$ cd linux-2.6

 

# 做一些修改

$ vi drivers/net/sk98lin/skdim.c

 

# 注意: 运行 'git add' 'git rm' 来增加或删除文件.

 

# 签入所有修改

$ git commit -a

撤销最近的提交:

某些时候您做了一些提交,或仅仅修改,但想消除这些提交.

$ cd my-kernel-tree-2.6

$ git reset HEAD~2     # 使最后两个提交消失

将会使最上部的两个提交消失. 如果有人下载了提交过的树,但您又刚刚消除了,请不要这样做.

注意这与git revert大不相同, git revert会应用一个恢复补丁作为额外的提交.

diff格式列出工作目录所有的更改.

显示改变从最后的'git add' 'git rm'开始:

$ git diff

显示改变从最后的提交开始:

$ git diff HEAD

 

 

获取工作目录中所有改变的汇总

$ git status

列出所有变更集的描述

$ git log

# 'git log' "-p" 选项另外还会以变更集文本的方式显示差异. "--stat" 选项还会以变更集文本的方式显示差异状态.

列出特定文件的所有变更集

(这里以为例, net/ieee80211/ieee80211_module.c)

$ git log net/ieee80211/ieee80211_module.c

分支

列出所有分支

$ git branch

获取想要的当前分支到工作目录

$ git checkout $branch

创建新分支,并把它作为当前的

$ git checkout -b my-new-branch-name master

检查哪个分支是当前的

$ git status

('git branch'也可以显示当前分支,使用一个"*" 来指示)

获取当前分支与主分支的差异

 在大多数有分支的树中,.git/refs/heads/master包含了当前的上游树,很方便用来比较和合并. (没有分支的树,'master' 简单地包含您最新的更改)

$ git diff master..HEAD

(这等价于 git diff HEAD, 当与HEAD使用的时候)

获取当前分支与主分支的变更列表

$ git log master..HEAD

(这等价于 git log, 当与HEAD使用的时候)

更或者是所有的变更描述,获取每个变更的在线总结:

$ git shortlog master..HEAD

从一个分支合并变更到另一个

Let us suppose that you do work on branch A and branch B, and after work on those two branches is complete, you merge the work into mainline branch M.

假设您在分支 A 和 分支 B 上工作,并且两个分支工作后都完成了,然后把两个分支都合并到主线分支 M

$ git checkout M       # 转到分支 M

$ git merge A          # 合并 A M

$ git merge B          # 合并 B M

杂项(此处略,未看,Sorry

优化存储库.

签出一个较老的内核版本.

以伯克利mbox-format文件应用所有补丁.

不要忘了经常下载tags.

标记一个特殊的提交.

扩展阅读

另外一个很好的介绍是官方指南git tutorial, 更深入的见man page documentation.

 

 

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