Git 分支管理詳解
大綱:
1.前言
2.建立分支
3.切換分支
4.合并分支(快速合并)
5.刪除分支
6.分支合并衝突
7.合并分支(普通合并)
8.分支管理原則
9.團隊多人開發協作
10.總結
注,測試機 CentOS 5.5 x86_64,Git 伺服器版本:git version 1.8.2.1,用戶端版本:git version 1.9.2.msysgit.0。所有軟體請到這裡下載:http://msysgit.github.io/。
1.前言
在上一篇部落格中我們主要講解了Git 遠程倉庫,相信大家對遠端Git倉庫有一定的瞭解,嘿嘿。在這一篇部落格中我們來在大家講解一下Git 分支管理,這可以說是Git的又一大特點。下面我們就來學習一下Git分支管理吧。
我們先來說一個簡單的案例吧,你們團隊中有多個人再開發一下項目,一同事再開發一個新的功能,需要一周時間完成,他寫了其中的30%還沒有寫完,如果他提交了這個版本,那麼團隊中的其它人就不能繼續開發了。但是等到他全部寫完再全部提交,大家又看不到他的開發進度,也不能繼續幹活,這如何是好呢?
對於上面的這個問題,我們就可以用分支管理的辦法來解決,一同事開發新功能他可以建立一個屬於他自己的分支,其它同事暫時看不到,繼續在開發分支(一般都有多個分支)上幹活,他在自己的分支上幹活,等他全部開發完成,再一次性的合并到開發分支上,這樣我們既可知道他的開發進度,又不影響大家幹活,是不是很方便呢?
大家可能會說了,你Git的分支功能人家SVN也有啊,也沒什麼特殊的嘛。但我想說你那個建立和切換速度怎麼樣呢?嘿嘿,我想說誰用誰知道啊!但Git呢,無論你建立還是切換或者刪除都很快哦!
分支本質上其實就是一個指向某次提交的可變指標。Git 的預設分支名字為 master 。而我們是怎麼知道當前處於哪個分支當中呢?答案就是在於 HEAD 這個十分特殊的指標,它專門用於指向於本地分支中的當前分支。我們可以簡單理解為:commit <- branch <- HEAD (注,本來我們詳細說一下HEAD的,這個東西真不好說,goole了一下也沒幾個大神說這個,嘿嘿。下面我就通過講解協助大家理解,簡單的說HEAD就是指向於本地分支中的當前分支,如:) 下面我們來建立分支。
GitHub 教程系列文章:
GitHub 使用教程圖文詳解
Git 標籤管理詳解
Git 分支管理詳解
Git 遠程倉庫詳解
Git 本地倉庫(Repository)詳解
Git 伺服器搭建與用戶端安裝
Git 概述
2.建立分支
當我們需要調試某個Bug或者嘗試添加或修改程式中的某個模組,而又不能影響主分支的開發時。就可以通過建立分支來滿足需求。建立分支相當於是建立一個新的分支指標指向當前所在的提交。我們在Commit3上建立dev分支:
如所示,dev分支指向Commit3。
從可知,雖然我們建立了一個新分支,但是 HEAD 仍然指向 master 。如果希望在建立分支的同時切換到新分支上,我們可以通過以下命令實現:
git checkout命令加上-b參數表示建立並切換分支上。
3.切換分支
切換當前分支我們可以用以下命令實現:
git branch -a 命令可以查看所有分支,現在我們HEAD指標便指向dev分支,大家可以在中看到dev分支上有個*號。
下面我們修改一下readme.txt中的內容,並在dev分支上提交一下。如:
用流程圖示範上述過程如下:
現在我們在dev分支上完成工作,現在到master分支上。如:
流程圖表示如下:
切換回master分支後,再查看一個readme.txt檔案,如:
大家可以看到我們剛才增加的一行內容不見了,嘿嘿。因為那個提交是在dev分支上,而master分支沒有變化。好了,下面我們來示範一下合并分支。
更多詳情見請繼續閱讀下一頁的精彩內容: