Git----分支管理之建立與合併分支02

  在版本回退裏,你已經知道 ,每次提交,Git都把它們串i成一條時間線,這條時間線就是一個分支,截至到目前,只有一條時間線,在Git裏,這個分支叫主分支,即master分支,HEAD嚴格來講不是指向提交,而是指向mastermaster纔是指向提交的,因此,HEAD指向的就是當前分支git

每次提交,master分支都會向前移動一步,這樣,隨着你不斷提交,master分支的線也愈來愈長:安全

當咱們建立新的分支,例如dev時,Git新建了一個指針叫dev,指向master相同的提交,再把HEAD指向dev,就表示當前分支在dev上:ui

你看,Git建立一個分支很快,由於除了增長一個dev指針,改改HEAD指向,工做區的文件都沒有任何變化。spa

 不過,從如今開始,對工做區的修改和提交就是針對dev分支了,好比新提交一次後,dev指針往前移動一步,而master指針不變3d

假如咱們在dev上的工做完成了,就能夠把dev合併到master上,Git怎麼合併呢?最簡單的方法就是直接把master指向dev當前的提交,就完成合並了:指針

因此Git合併分支也很快,就改改指針,工做區內容也不變!blog

合併完分支後,甚至能夠刪除dev分支,刪除dev分支就是把dev指針給刪除掉,刪掉後,咱們就剩下一條master分支了:it

下面開始實戰:io

首先,咱們建立一個分支dev,而後切換到dev分支:ast

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b參數表示建立並切換,至關於如下兩條命令:

$git branch dev

$git checkout dev

Switched to branch 'dev'

而後用git branch命令查看當前的分支

$ git branch
* dev
master

 git branch命令會列出全部分支,當前分支前面會標一個*號

而後嗎,咱們就能夠在dev分支上正常提交,好比對readme.txt作個修改,加上一行:

Creating a new branch is quick.

而後提交:

$ git add readme.txt

$ git commit -m "branch test"
[dev 3d9a6be] branch test
1 file changed, 2 insertions(+), 1 deletion(-)

如今,dev分支的工做完成了,咱們就能夠切換到master分支:

$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

切換回master分支後,再查看一下readme.txt文件,剛纔添加的內容不見了,由於那個是提交在dev分支上的,而master分支此刻的提交點並無變:

如今咱們把dev分支的工做成果合併到master分支上:

$ git merge dev
Updating d255aa7..3d9a6be
Fast-forward
readme.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

 git merge命令用於合併指定分支到當前分支,合併後,再查看readme.txt的內容,就能夠看到,和dev分支的最新提交是徹底同樣的。

注意到上面的Fast-forward信息,Git告訴咱們,此次合併是「快進模式」,也就是直接把master指向dev當前提交,因此合併速度很是快。

固然,也不是每次合併都能Fast-forward,之後會講到其餘方式的合併

合併完成之後,就能夠放心的刪除dev分支了:

$ git branch -d dev
Deleted branch dev (was 3d9a6be).

刪除後,查看branch,就只剩下master分支了: 

$ git branch
* master

 由於建立、合併和刪除分支很是快,因此Git鼓勵你使用分支完成某個任務,合併後再刪掉分支,這和直接在master分支上工做效果是同樣的,但過程更安全。

 

摘抄自:

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840038939c291467cc7c747b1810aab2fb8863508000

相關文章
相關標籤/搜索