本文章主要是记录自己学习git时候,面对分支合并,考虑的一些情形,仅供参考。
1、没有冲突的情况
master分支没做改变,branch1改变,将branch1合并到master分支上。
具体操作如下:
2、有冲突情况
在master分支新建分支first之后,master分支与first分支都有修改。
1、其中master分支的修改是 git pull后产生的。
- 1、在创建完新分支之后,主分支git pull 了远端分支。然后切换到新分支做改变。
- 2、回到主分支,进行合并。会告诉需要自己手动更改。
- 3、然后从头开始进行提交 从工作区到暂存区到本地仓库到远端仓库
2、其中master分支是由自己操作的
1、在master分支上新建first分支,然后在master分支上进行修改,并提交到本地仓库
2、切换到first分支,在上进行修改,并提交到本地仓库
3、切换到master分支,进行合并,无法自动合并,查看错误,并手动合并提交
可以看到,上面两种情况冲突是一样的。
需要注意的是,当处理完冲突,提交之后,之前新建分支的那个文件夹里的东西并不会改变。
3、能不能看出分支之间区别
在新分支上修改了文件,如果没有提交到仓库,那么在主干分支上也是可以看得见修改的内容,只有commit之后,主干才看不见,然后需要git merge。如果在branch分支没有提交,然后直接在master分支上提交,也没啥错误信息。
3、总结
以上就是面临冲突的问题:
1、主干分支不做修改,然后新分支修改,提交到仓库,在主干上合并,push到远端仓库
2、主干分支有修改,新分支也有修改,手动解决冲突。push到远端仓库。其中又可以分为:
1、主干分支创建新分支后,新分支修改提交仓库,然后主干分支pull了远端仓库的更新,有冲突
2、主干分支创建新分支后,新分支修改提交仓库,主干分支也修改提交仓库,合并有冲突。
3、如果新分支没有提交到仓库,那么主干分支是看得见修改的,此时主干分支可以自己提交到仓库,然后push到远端仓库,但是此种操作感觉怪怪的。
等等。。