文章目录
Git 分支的操作
一、分支的概念
在版本控制过程中, 同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。
使用分支意味着程序员可以把自己的工作从开发主线(图中的master
)上分离开来,开发自己分支(图中的feature-game
、feature-blue
、hot-fix
)的时候不会影响主线分支的运行。
对于初学者而言,分支可以简单理解为副本
,一个分支就是一个单独的副本,最终的项目就是各副本的合并。(分支底层其实也是指针的引用)
分支的好处:
- 同时并行推进多个功能开发,提高开发效率。
- 各个分支在开发过程中, 如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
返回顶部
二、分支的操作
2.1 查看分支
- git branch -v
2.2 创建分支
- git branch 分支名
可以看到,我们创建了新的hot-fix
分支。
2.3 切换分支
- git checkout 分支名
切换分支后,可以看到当前的分支处在hot-fix
上。
此时我们在hot-fix
分支上进行文件修改:
修改之后,我们将其添加到暂存区,查看本地库状态:
进行一次提交,再次查看文件信息:
2.4 合并分支
当我们切换回master
分支的时候,神奇的一幕出现了,我们的文件又回到了hot-fix
修改之前的,这是因为我们的修改操作都是在hot-fix
分支下做的,master
分支中并没有。
如果想要实现不同分支的操作同步到master
主支上,就需要进行合并分支git merge 分支
操作。
这个时候,就会将hot-fix
分支上的内容合并到当前的master
主分支上了。
2.5 合并冲突
冲突产生的原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。 Git 无法替我们决定使用哪一个,必须人为决定新代码内容。
首先我们在master分支上进行文件修改:
然后在hot-fix分支上进行文件修改:
接着试图合并两个分支,会发现报了冲突的错误:
此时我们打开文件:
此时我们需要手动保留需要的内容,去掉多余的内容以及提示信息:
然后接着将文件添加到暂存区,进行提交(注意提交的时候不能添加文件名):
还要注意的是此时的合并仅对当前分支master
有效,hot-fix
分支并没有被合并:
master
、hot-fix
其实都是指向具体版本记录的指针。当前所在的分支,其实是由 HEAD
决定的。所以创建分支的本质就是多创建一个指针。
-
HEAD
如果指向master
,那么我们现在就在 master
分支上。-
HEAD
如果执行 hot-fix
,那么我们现在就在 hot-fix
分支上。所以切换分支的本质就是移动
HEAD
指针。
返回顶部