版本控制系統Git進階(一)

上一篇版本控制系統Git 入門(三)

分支管理

強大的分支管理是git的一大優勢之一,當然有集中式管理系統SVN的也有分支的管理,但相比git相對弱很多。那么分支在實際中有什么作用呢?假設你和另一個同事是一起合作開發一個項目的,這時候你正打算開發新的需求,而你的同事還在原來的版本上修改bug,而你的正在開發的新需求在時間上和風險上不是很得到控制估計會影響到你的同事在修改bug,因此你不如創建一個屬于你自己的分支,然后你開發完后再合并回原來的分支上,這樣就造成兩不誤了?;ゲ挥绊?。其實發布版本的分支(一般叫Master分支)和正常開發(修改bug)的分支還有另有需求需要修改的分支都是需要的,如下圖


Master分支

master分支是git默認提供的分支,基本上所有的開發都是以master為中心進行開發,不同分支進行作業之后都會與master分支進行合并,如下圖


提示:再次提醒上篇中提到的HEAD,HEAD是指向當前分支中的最新提交。

顯示分支一覽表git branch

git branch可以顯示分支名列表,并且用*表示當前所在的分支。


解析:
根據命令提示,當前只有master分支,并且當前是在master分支下進行開發。

創建分支git branch <name>

使用命令git branch featureA 創建分支featureA。再使用git branch查看分支列表。

解析:創建了分支featureA,但是還是在master分支上進行作業。

切換分支git checkout <name>

在上面操作的基礎上使用命令git checkout featureA切換到分支featureA上,再使用命令 git branch查看當前所在的分支

創建、切換分支 git checkout -b

但常常會使用git checkout -b 分支名 來創建并切換分支,它相當于執行了創建和切換兩條命名。

解析:
由上圖的兩條命令知道,創建了featureB并且切換到了featureB中。

切回上一個分支git checkout -

使用命令 git checkout -是切回到上一個命令。

git merge 合并分支

切換到分支featureA,在git.txt上加入一行add featureA,然后提交到分支上,切換到分支master,查看git.txt看出現了啥?



解析:
剛剛提交的 ,因為HEAD指向的是featureA分支,所以你做的任何修改和提交都是發生在featureA上,對master分支沒有任何影響。

現在,切換回master分支,在master分支上,合并featureA分支,使用git merge featureA,再使用cat git.txt查看git.txt的內容。

解析:可以看到“add featureA”,已經添加進來了。

刪除分支git branch -d <name>

繼續上面的操作,在featureA上做的操作已經完成也合并到了master分支上,那么featureA已經沒有任何意義了(注意:開辟一個分支最好只做一個功能),那么就應該刪除它,使用git branch -d featureA把分支featureA刪除。

解析:根據提示,featureA分支成功刪除。

以圖表形式查看分支git log --graph

輸入命令git log --graph以圖表的形式查看log。


非常直觀,請經常使用。

下一篇版本控制系統Git 進階(二)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容