? ? ? ?在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。
????????通常,在一个公司内部,master分支为线上运营的分支,即用户正在使用的分支;而其他如dev分支,为程序员开发新功能或优化性能等所使用,简单来说,程序员在开发新功能时并不影响其他分支,只需要在自己的分支上进行开发,等到开发完成后,合并到主分支即可。
????????对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
分支的好处:
? ? ? ?1.?同时并行推进多个功能开发,提高开发效率。
? ? ? ?2.各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
命令名称 | 作用 |
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支 |
提示:创建分支时,比如说我现在在master分支,使用命令 "git branch newbranch"之后,会创建一个newbranch分支,并且此分支的所有信息都和master分支一样,可以理解为是将master分支复制了一遍。
????????特别提醒:只有添加到暂存区并提交到本地库才会被git追踪到,此时合并时才可能出现冲突,如果你只是在工作区内进行了修改,对于git而言你什么都没做。
? ? ? ? 1.如果只对一个分支进行了更新,而另外一个分支并没有更新的话,那么不会发生冲突。
? ? ? ? 2.或者你两个分支都进行了更新,但是没有在相同的行进行更新,会发生冲突。处理方法同下。
? ? ? ? 3.如果两个分支都进行了更新,且在同一行进行更新,那么git就不能自动判断是否留下哪一个,删除哪一个,此时就需要认为进行决定谁去谁留。
如下是让“hot-fix”分支合并到"master"分支,并发生冲突
????????
注意,分支后会出现“MERGING",表明正在合并中,没有合并完成
此时,你需要打开冲突文件,如下:?
?
需要人为将特殊符号进行删除,将你想要保留的代码留下,不需要的删除掉。
查看状态可知,需要我们将文件添加到暂存区,并且提交到本地库。
注意:此时使用 git commit 命令时不能带文件名,否则会报错
当提交完成后分支后的“MERGING"会消失,表明合并完成