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
来源: https://www.jb51.net/article/191659.htm