在Git的分支merge中,不可能没有代码的冲突问题,特别在跟别人分工合作时。那该怎么解决?
1.新建一个conflict分支,在dev方法下添加一句
System.out.println(“Creating a new branch is quick AND simple.”);
,提交。
2.checkout到’master’分支,同样在下面加一句
System.out.println(“Creating a new branch is quick & simple.”);
。提交。
3。在git repositories中,选中master点右键merge合并‘conflict’分支
4。发现’master’分支下的demo.Java文件出现
<<<<<<< HEAD
System.out.println("Creating a new branch is quick & simple.");
=======
System.out.println("Creating a new branch is quick AND simple.");
>>>>>>> refs/heads/conflict
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,
而且java文件带有冲突的红色标记:
然后我们决定留下来的内容,修改成
System.out.println(“Creating a new branch is quick and simple.”);
,其余的就全部删掉。
5.右键demo.java文件-》team-》add to index,重新加入暂存区,告诉git你已经解决了冲突。
这时该文件的红色标记就消失了,最后重新commit该文件,冲突解决!
廖雪峰老师 对分支在开发中的使用有一下建议:
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
最后分支也可以随时推送到远程github:
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
feature分支(指的是新开发的功能)是否推到远程,取决于你是否和你的小伙伴合作在上面开发。