git基本知识,用了git这么多年了。感觉多数属于浮于表面,基本操作。在讲讲如何解决冲突前,先理理基础知识。基础概念不掌握,剩下都白搭。
我感觉一个图就可以介绍的很清晰。黄色的工作区,就理解为工作的本地PC;remote才是最核心的远程仓库,多人开发,最终都要和remote沟通。
产生冲突的原因,说白了,类似编程里面的代码没有上锁,A修改合并前,对于相同的文件没有同步B修改后的内容。
所以解决冲突,就是得把B修改过的和A修改过的整整,该删除就删除,改添加就添加。
这里有两种手段:
1.直接粗暴,屡试不爽,
a 保留本地合入源码,最好改个名。
b 关闭merge请求,删除合入源码的仓库,
c 直接从合入目的仓库 fork一份出来,本地重新clone一份出来
d 将clone出来的与之前需要合入的进行对比
e 再次提交。
这样做法绝对没有问题,其实更好的是一种管理习惯,本地保留一份branch目录,里面存放的仓库只用来merger,本地其它目录中修改完成后,更新branch下的文件夹,修改合入后再提交。这个可避免每次出现错误。
2.上面方法是我比较喜欢。 但如果真的遇到冲突的,并且项目也比较大的情况,一时半会不好更新下来,那就只能手动去解决冲突了的
网上也有一些说法,
PS: 冲突是一个非常好的保护机制,让世界不至于乱套!