P2L12——【git版本管理】Git创建与删除分支,合并分支
P2L12——【git版本管理】Git创建与删除分支,合并分支
git分支功能
Git当中提供的分支功能,相当于就是为开发过程添加一条新的开发路径。如图所示
举个例子来说明这张图,当我们在项目开发后期时,项目可能会被多个发行商代理,
不同发行商可能会提一些商业活动需求,比如在游戏中加入一些充值活动,一些不同的充值功能。
那么此时我们完全可以在最终版本处进行分支,不同的分支开发不同的功能需求,相互不影响。甚至在后期也可以将多个分支进行合并。
如何创建新的分支
分支切换
我们首先在该分支中加入一个开发节点,在工程文件夹中加入一个文件,并点击记录分支按钮(Commit到分支)
这时再切换分支,你可以看到不同分支中的开发节点是不同的了(因为Android分支是基于之前的Main分支的,所以前面部分是相同的节点)
发布分支
如果你想要将新的分支上传的Github云端,以便分享给它人,只需要切换到对应节点,然后点击推送即可
预览拉取请求,我们先按下不表,忽略这个按钮
此时来到Github主页中,查看对应的项目,就可以在Github上看到对应的分支,并进行切换了
删除分支
在分支页签中选择删除
弹出确定窗口
但是,如果你选择了删除远端分支,那么分支将彻底消失
合并分支
保证有至少2个分支,并且发布, 假设有三个分支,一个主分支main,一个IOS分支,一个Android分支
首先选中想要和其他分支合并的分支,如下图,我想用main分支和其它分支合并
点击分支页签中的合并分支
弹出合并窗口
选中想要合并的分支,点击创建合并提交即可,提交成功后,你会发现main当中多了IOS分支中的提交节点
此时即可进行推送
合并分支存在冲突
所谓冲突,即两个分支中都对同一个文件产生了修改,我们需要决定使用谁的修改
比如,我修改了main分支中的Test2.txt文件中的内容,并记录节点(点击Commit 到 main)
又切换到IOS分支,然后修改Test2.txt中的内容,再Commit到IOS
此时在两个分支中,我都修改了同一个文件,此时我选中main分支,让他和IOS分支进行合并
此时合并窗口,会提示存在文件冲突,因为两个分支都修改了同一个文件
此时点击创建合并提交按钮后,会弹出一个冲突提示解决的窗口
我们通过Visual Studio code旁边的小箭头,可以有更多的解决方式选择
可以直接选择
- 使用默认编辑器打开来手动修改
- 在资源管理器中显示文件是谁
- 使用main节点中的修改
- 使用IOS节点中的修改
如果你确定抛弃其中一个节点的修改,你可以选择3或者4
但是一般对于复杂的改动,可能双方的内容会选择性保留,此时一般选择1
我们点击打开与Visual Sudio Code(你的可能是其他编辑器)
此时,在编辑器中可以看到当前节点修改的内容,和想要合并节点修改的内容
你可以二选一,也可以保留双方的修改,根据你的需求进行选择即可
(因为有时协同开发时,不同程序员可能会同时对某个文件进行修改,但是修改具体应该采用谁的呢?
这时我们往往会针对每一处改动,选择想要留下的一种修改,或者两种修改都保留)
我们在这里点击保留双方更改后,保存(注意:一定要保存,相当于就知道你的选择结果了)
然后关闭编辑器,再回到Github desktop窗口,它就会认为你已经处理好冲突了
点击Continue merge 继续合并即可,合并结束后
此时Main分支就合并了IOS分支的修改了,而切回IOS,它并没有变化
分支合并在协同开发时非常常用,主要作用就是合并不同程序员开发不同功能。
其中需要着重注意的就是在合并分支时,冲突代码的处理,遇到修改的代码不知道如何取舍时,一般会和开发另一个功能的程序员一起商量着合并