欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解git合并冲突解决方法

程序员文章站 2022-04-05 20:55:46
1、git merge冲突了,根据提示找到冲突的文件,解决冲突如果文件有冲突,那么会有类似的标记2、修改完之后,执行git add 冲突文件名3、git commit注意:没有-m选项进去类似于vim...

1、git merge冲突了,根据提示找到冲突的文件,解决冲突

如果文件有冲突,那么会有类似的标记

2、修改完之后,执行git add 冲突文件名

3、git commit

注意:没有-m选项

进去类似于vim的操作界面,把conflict相关的行删除掉

4、直接push就可以了,因为刚刚已经执行过相关merge操作了

相关的操作如下

冲突产生

[root@monitor demo]# git branch #当前在master分支下
* master
 psr/psr-01
 psr/psr-02
[root@monitor demo]# git checkout psr/psr-02 #切换到psr/psr-02分支下
switched to branch 'psr/psr-02'
[root@monitor demo]# git branch
 master
 psr/psr-01
* psr/psr-02
[root@monitor demo]# ls
license new_remote_branch.txt psr_psr-02.txt readme.md
[root@monitor demo]# vim psr_psr-02.txt #修改psr/psr-02分支上的文件
[root@monitor demo]# git add psr_psr-02.txt
[root@monitor demo]# git commit -m 'psr_psr-02.txt has changed on psr/psr-02 branch' #提交到暂存区
[psr/psr-02 62ca72c] psr_psr-02.txt has changed on psr/psr-02 branch
 1 files changed, 6 insertions(+), 0 deletions(-)
[root@monitor demo]# git checkout master #切换到master分支下
switched to branch 'master'
[root@monitor demo]# vim psr_psr-02.txt #在master分支下也对psr_psr-02.txt进行修改
[root@monitor demo]# git add psr_psr-02.txt
[root@monitor demo]# git commit -m 'changed this file on master branch'
[master 282fbeb] changed this file on master branch
 1 files changed, 2 insertions(+), 0 deletions(-)
[root@monitor demo]# git merge psr/psr-02 #把psr/psr-02分支合并到当前分支,这时提示冲突了
auto-merging psr_psr-02.txt
conflict (content): merge conflict in psr_psr-02.txt
automatic merge failed; fix conflicts and then commit the result.

冲突解决过程

冲突文件的格式基本如下
<<<<<<<到=======是在当前分支合并之前的文件内容
=======到>>>>>>> psr/psr-02是在其它分支下修改的内容
需要在这个两个版本中选择一个,然后把标记符号也要一起删除
<<<<<<< head

add some lines on master branch

add some lines on psr/psr-01 branch

2016年12月13日14:43:34 changed after psr/psr-02
=======
1
2
3
4
5
>>>>>>> psr/psr-02

冲突文件

vim psr_psr-02.txt

<<<<<<< head
add some lines on master branch

add some lines on psr/psr-01 branch

2016年12月13日14:43:34 changed after psr/psr-02
=======
1
2
3
4
5
>>>>>>> psr/psr-02

修改冲突文件

# vim psr_psr-02.txt
readme.md

i'am in new branch psr/psr-02 based on psr/psr-01

add some lines on master branch

add some lines on psr/psr-01 branch

2016年12月13日14:43:34 changed after psr/psr-02

添加冲突的文件,然后就可以直接push了

merge branch 'psr/psr-02'

conflicts:
  psr_psr-02.txt
#
# it looks like you may be committing a merge.
# if this is not correct, please remove the file
#  .git/merge_head
# and try again.
#

# please enter the commit message for your changes. lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# on branch master
# your branch is ahead of 'origin/master' by 1 commit.
#

需要删掉下面这两行

conflicts:
  psr_psr-02.txt

执行git push 操作

git push origin master

到此这篇关于详解git合并冲突解决方法的文章就介绍到这了,更多相关git合并冲突内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: git 合并冲突