一般在团队合作开发一个项目的过程中,经常出现两个人同时修改一个文件然后都向主master提交commit,这样就会产生冲突(conflict),那么这种情况如何解决?

如果项目的主分支是master,自己从主分支fork下来的就是属于自己的master分支,该分支是默认被主分支的master同步的。首先要在自己的远程仓库中新建一个分支(我们这里取名为work),以后自己通过git提交修改时都提交到work而不是master

git冲突解决方案 Intellij IDEA

git冲突解决方案 Intellij IDEA

这样就能看到work分支也有我们的整个项目了

git冲突解决方案 Intellij IDEA

2 在IDEA中修改设置

以后我们每次提交不应该提交到自己的master分支中,而应该提交到自己的work分支中。所以需要在IDEA中进行git相关设置的修改。首先从远程pull一下

git冲突解决方案 Intellij IDEA

git冲突解决方案 Intellij IDEA

在IDEA右下角点开Git分支目录,选择remote—-work—–checkout as new local branch

git冲突解决方案 Intellij IDEA

然后就可以看到我们的git默认提交的分支已经改成了刚才创建的work。

3 提交代码并修复冲突

在项目中随意位置新建一个html,敲一些字母(我们这里只是测试用),然后通过git commit and push到我们刚才新建的work分支。

git冲突解决方案 Intellij IDEA

然后通过VCS,选择Rebase,和第二步中一样

git冲突解决方案 Intellij IDEA

git冲突解决方案 Intellij IDEA

再点击右下角的git,选择master分支并且merge

git冲突解决方案 Intellij IDEA

这里就会提示我们有冲突。双击冲突并且选择自己到底采纳哪个代码

git冲突解决方案 Intellij IDEA

git冲突解决方案 Intellij IDEA

当解决完冲突之后,重新commit并且从自己的work分支pull and request到项目的主master分支即可。

 

 

切换到master分支选择要合并的dev分支

git冲突解决方案 Intellij IDEA

git冲突解决方案 Intellij IDEA

2、处理冲突代码

git冲突解决方案 Intellij IDEA

3、合并代码后提交

git冲突解决方案 Intellij IDEA

相关文章: