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教程