Git學習筆記四(創建和合並分支)

Git學習筆記四

創建與合併分支

  • 在Git中,主分支是master分支,一開始的時候,master分支是一條線,Git用master指向最新的提交,再用HEAD指向master,就能確定當前分支,以及當前分支的提交點,每次提交,master分支都會向前移動。如圖
    這裏寫圖片描述
  • 當我們創建新的分支,例如dev時,Git新建了一個指針叫dev,指向master相同的點,再把HEAD指向dev,就表示當前分支在dev上,如圖
    這裏寫圖片描述
  • 我的理解就是每一個分支的名字都相當於一個指針,指向這條分支線最新提交的節點,而HEAD指針是指向當前工作分支的指針。
  • 倘若我們在dev上的工作完成了,就可以把dev合併到master上。在簡單情況下,就是直接把master指向dev的當前提交,就完成了合併。

  • 創建新分支可以用git branch name,切換分支可以用git checkout name,也可以用命令同時完成這兩個功能(創建並切換)。如下

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

  • 這個等效於
    $ git branch dev 
    $ git checkout dev
    Switched to branch 'dev'
  • 查看分支情況用git branch,前面加*表示當前分支,如

    $ git branch 
    * dev
    master

  • 現在git addgit commit就是在dev分支操作了。

  • 刪除分支用git branch -d name,如
    $ git branch -d dev 
    Deleted branch dev (was fec145a).
  • 將分支合併到主分支上,在主分支下用git merge name,如

    $ git merge dev 
    Updating d17efd8..fec145a
    Fast-forward
    readme.txt | 1 +
    1 file changed, 1 insertion(+)

  • 當合併產生了衝突,比如master和dev分別有新的提交,如圖
    這裏寫圖片描述

  • git status可以告訴我們衝突的文件,git log --graph可以看到分支合併圖。
  • 總而言之,當Git無法自動合併分支時,就必須首先解決衝突,解決衝突後(在文本文件內根據提示將內容修改至和HEAD指向內容相同),再提交,合併完成。

本文是本人學習廖雪峯git教程過程中的學習記錄,詳細教程可以參見廖雪峯Git教程

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