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 add
和git 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教程