P2L12——【git版本管理】Git创建与删除分支,合并分支

git分支功能

Git当中提供的分支功能,相当于就是为开发过程添加一条新的开发路径。如图所示

image

举个例子来说明这张图,当我们在项目开发后期时,项目可能会被多个发行商代理,
不同发行商可能会提一些商业活动需求,比如在游戏中加入一些充值活动,一些不同的充值功能。

那么此时我们完全可以在最终版本处进行分支,不同的分支开发不同的功能需求,相互不影响。甚至在后期也可以将多个分支进行合并。

如何创建新的分支

image

image

image

分支切换

image

我们首先在该分支中加入一个开发节点,在工程文件夹中加入一个文件,并点击记录分支按钮(Commit到分支)

image

这时再切换分支,你可以看到不同分支中的开发节点是不同的了(因为Android分支是基于之前的Main分支的,所以前面部分是相同的节点)

image

image

发布分支

如果你想要将新的分支上传的Github云端,以便分享给它人,只需要切换到对应节点,然后点击推送即可

image

预览拉取请求,我们先按下不表,忽略这个按钮

image

此时来到Github主页中,查看对应的项目,就可以在Github上看到对应的分支,并进行切换了

image

删除分支

image

在分支页签中选择删除

image

弹出确定窗口

image

image

但是,如果你选择了删除远端分支,那么分支将彻底消失

image

合并分支

保证有至少2个分支,并且发布, 假设有三个分支,一个主分支main,一个IOS分支,一个Android分支

image

首先选中想要和其他分支合并的分支,如下图,我想用main分支和其它分支合并

image

点击分支页签中的合并分支

image

弹出合并窗口

image

选中想要合并的分支,点击创建合并提交即可,提交成功后,你会发现main当中多了IOS分支中的提交节点

image

此时即可进行推送

合并分支存在冲突

所谓冲突,即两个分支中都对同一个文件产生了修改,我们需要决定使用谁的修改

比如,我修改了main分支中的Test2.txt文件中的内容,并记录节点(点击Commit 到 main)

image

又切换到IOS分支,然后修改Test2.txt中的内容,再Commit到IOS

image

此时在两个分支中,我都修改了同一个文件,此时我选中main分支,让他和IOS分支进行合并

此时合并窗口,会提示存在文件冲突,因为两个分支都修改了同一个文件

image

此时点击创建合并提交按钮后,会弹出一个冲突提示解决的窗口

image

我们通过Visual Studio code旁边的小箭头,可以有更多的解决方式选择
可以直接选择

  1. 使用默认编辑器打开来手动修改
  2. 在资源管理器中显示文件是谁
  3. 使用main节点中的修改
  4. 使用IOS节点中的修改

如果你确定抛弃其中一个节点的修改,你可以选择3或者4
但是一般对于复杂的改动,可能双方的内容会选择性保留,此时一般选择1

image

我们点击打开与Visual Sudio Code(你的可能是其他编辑器)

此时,在编辑器中可以看到当前节点修改的内容,和想要合并节点修改的内容

你可以二选一,也可以保留双方的修改,根据你的需求进行选择即可
(因为有时协同开发时,不同程序员可能会同时对某个文件进行修改,但是修改具体应该采用谁的呢?
这时我们往往会针对每一处改动,选择想要留下的一种修改,或者两种修改都保留)

image

我们在这里点击保留双方更改后,保存(注意:一定要保存,相当于就知道你的选择结果了)

image

然后关闭编辑器,再回到Github desktop窗口,它就会认为你已经处理好冲突了

image

点击Continue merge 继续合并即可,合并结束后

image

此时Main分支就合并了IOS分支的修改了,而切回IOS,它并没有变化

image

分支合并在协同开发时非常常用,主要作用就是合并不同程序员开发不同功能。
其中需要着重注意的就是在合并分支时,冲突代码的处理,遇到修改的代码不知道如何取舍时,一般会和开发另一个功能的程序员一起商量着合并