源代碼管理工具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.

 

 

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