SourceTree保姆级教程:(解决冲突)
概述:
在实际开发过程中,团队协作虽然是避免操作修改同一个文件,但是有时候也避免不了造成冲突修改同一个文件,那么就必须解决冲突合并。
1.首先就必须创建冲突,冲突一般是由于两个人同时修改同一文件而造成的,在这里我们直接在远程github上修改代码文件模拟另一个人的操作,及在sourceTree本地修改造成冲突。
编辑test1.txt文件。
文件末尾增加 code conclick1,点击提交
2.打开本地工作副本的test1.txt文件,新增内容code conclick2。 添加完毕会看到sourceTree 有待提交的文件。
3.此时提交,推送会有问题(远程仓库上也有人提交了该文件的修改。直接推送本地修改,推送本地工作副本到远程仓库,运行完成后会报错。大致意思就是其他人已经提交代码到远程,你自己本地库和远程不一致,需要获取,拉取最新代码)
4.获取远程最新代码,至此冲突已形成,需要去解决(冲突文件会把两者的修改以冲突的方式合在一个文件里,等待使用者去处理。那么基本的处理思想是:要么使用其中某一个人的,要么使用两者的组合。)
5.解决 冲突
冲突的解决需要一个外部代码对比工具,这里使用的是Beyond Compare 4,大家可以自己百度下载安装,然后集成到sourceTree软件中。如下图。在外部对比工具中找到Beyond Compare 4的可执行程序,点击确定。
选中待解决冲突的代码,右键 解决冲突,打开外部合并工具
第一块是本地修改的版本,第二块是冲突两者(本地仓库和远程仓库)相同的版本基准,第三块是 远程仓库的修改。第四块是冲突处理后的代码。
因为不同功能,所以这里要保存两个人的变化量。把第一块和第三块所做的修改按照正确的逻辑顺序,合到第四块。如下图,点击保存。关闭该对比软件。
6.查看解决冲突后的文件内容。
切到sourceTree界面,可以看到多了一个解决冲突的中间文件,由于冲突已解决,直接右键移除。
推送该暂存区变化量。之后就能看到不同的两个人推送的不同的代码内容。
至此使用sourceTree解决冲突已完成,补充一点其实可以不用这个外部文件去解决,现在任何一个编辑器都自带解决冲突标识。自己手动去变基。 感谢点赞收藏!