接上一节 这一节说的是分支 开发不可能是只有一个master分支 比如后端可能跟前端协作 最后一起合并代码 或者说分支是把你自己的工作从主线上分离出来 避免影响到主线
master分支一般是放着永远可用的稳定版本 一般再dev分支上开发 不能直接提交到master上 不好
分支创建也是有规范的 一般以 feature-功能模块 来命名 比如有bug的话 那也可以再新建一个分支 feature-功能模块-fix
比如开发用户订单模块 feature-userOrder 也就是从主干版本拷贝一份下来 开发 然后提交到自己的分支
还有命名是 hotfix-xxx 意思是紧急修改一个bug来创建的一个分支
例子 我们先创建一个仓库 然后创建一个文件 并且添加提交到本地仓库
好了 现在我们创建分支 右击使用tortoisegit工具来创建一个分支
然后选从哪个拷贝一份下来 确定即可
同样的 右键使用tortoisegit工具查看分支情况
可以看到 在master上拷贝了一份
现在可以在文件夹右键看一下 还是提交到master 说明没有把工作区切换到 feature-fire分支上
同样的 我们右键使用tortoisegit工具
选择这个功能 然后按照提示切换即可
我们在这个分支下新建一个文件 然后提交到这个分支上就好了
省略了新建文件添加提交的图 看一下日志就好了
在feature-fire分支上添加了文件 切换到master分支上
切换回master分支 可以看到文件夹下又变成只有一个文件了
假设我们添加了b文件完成了整个功能 然后 合并到master分支
首先我们要切换到master分支上 然后使用tortoisegit工具 选择合并功能
填写相关信息 选择从哪个分支合并过来即可
那么b文件就从feature-fire分支合并过来了
怎么删除分支呢 还是在版本分支图中 然后点击feature-fire分支 选择删除
点击删除即可
但是合并分支并不会是一帆风顺的 现在说下怎么去处理分支冲突
举个例子
好的 那现在我们复现一下这个 情况 首先 我们新建两个分支 feature-one feature-two 然后都在b.txt做出修改 写下不同语句 然后先将 feature-one合并到master上
这是没问题的 然后将 feature-two 合并到master上 这时候就有问题了 但是 实际处理冲突的时候应该和别人交流 假设 这里的解决方式是把两个语句放一起 流程如下
同样的 在two分支也做这个操作
此时两个在master上拷贝下来的分支都对master的b文件做了修改 然后我们先把one分支合并到master上 首先切换master
切回master可以看到 b文件未被修改
可以看到 合并成功 现在 我们再来合并 two分支
可以看到 报错了 我们点击关闭 看一下b文件内容
变成了这样 这不是我们想要的 因我们想要的是处理两份文件的代码
我们还是使用tortoisegit工具 来处理冲突
点击解决冲突
看到冲突文件 双击它
双击它有上述页面 上述页面左边就是要合并的分支 右边就是当前的工作区内容 下面是解决冲突的地方
比如我们把它们改成
然后保存
标记为解决
就改成了这样
然后提交即可
忽略
这就解决了冲突
看一下日志
好了
由于这个git的截图等写下来很多 还是分成好几个部分 这个第二部分就说分支和冲突 下一部分说tag 远程仓库等