创建分支操作
底层原理图如下所示,原本分支master
和新创建分支idea
,这实现的分支就是又创建一个新的idea
指针,跟master
指向同一个版本,根本没有拷贝历史线。
当前分支是idea
,如果现在我对项目做了一下修改,然后commit
了。那么移动的只是idea
指针,master
不变,就变成了下图:
所以现在master
包含两个版本C1
和C2
,idea
分支包含三个版本C1
,C2
,C3
。
默认情况下这个idea
分支只是存在于本地,如果想在远端仓库上发布这个分支,就点一下分支右侧的Publish
按钮。
切换分支操作
如下图所示,点击哪个分支,就可以切换到哪个分支。
如果切换为master
分支,我们会发现本地的位于idea分支下的新创建的文件不见了,切换回idea
分支的时候他在。
删除分支操作
如下图所示,各种分支的操作都可以从这里进行操作:
合并分支操作
点击下面按钮可以实现合并操作,这样子master
中拥有了idea
中的所有代码。
新生成了一个 C5
,这是一个融合版本,这个合并挺特殊的,里面一般没有修改内容,它的作用主要是把两个分支合并起来。怎么合并的呢?把master
的内容sync
到github.com
上,然后查看一下这个merge commit
,会发现它有两个parent
。
merge
之后,master
分支指针指向了merge commit
,也就自动拥有了idea
分支上的C3
这个版本了。idea分支一般这会儿就可以删除了。
-
一般情况下,可以直接merge
-
另一种情况,如何解决代码冲突?
以下代码是冲突分隔符,需要人工解决,协商使用什么。