1、执行merge后一直显示merging状态,
当用命令行或vscode执行merge操作时,出现的文件冲突可能不会提示出来让我们选择,需要我们手动的操作,下面是合并冲突的两种情况
1.1、同行代码竞争
当你和另一个程序员修改了某文件的同一行代码,产生的代码冲突,必须用一个新的代码提交来解决这个合并冲突,只有这样,合并才能完成。在webstorm中我们通过选择完提示框中出现的冲突代码后,会发现提交记录中出现
当用命令行或者vscode时,或者没有提示出冲突代码,我们需要:
(1)打开Git Bash
(2)进入发生代码冲突的本地Git仓库(默认就会进入到当前仓库)
(3)获取受到合并冲突印象的文件列表:git status
如果有冲突,小黑框里会出现冲突的文件
(4)打开编译器查找,查找“<<<<<<<”标记符出现的地方来定位合并冲突发生的位置
<<<<<<< HEAD //标志冲突发生的位置
(你的代码)
======= // 分割符号
(另一个人的代码)
>>>>>>> BRANCH-NAME(branch-a) // 冲突位置结束,另一个人提交的代码是在branch-a对比分支上
(5)删除冲突标记符“<<<<<<<”,“=======”,“>>>>>>>”,并对文件完成你想要的修改
(6)git add .
(7)git commit
(8)分支合并操作,或者将修改推送至Github远程仓库,并在一个pull request中完成合并操作。
1.2、文件删除引起的合并冲突
例如有人编辑了被另一个人删除的文件,你必须决定该文件究竟应该被删除还是保留在项目分支中。
(1)git bash 、git status
(2)决定是删除,还是保留:
删除:git rm 文件名
保留:git add 文件名
(3)git commit
(4)分支合并操作,或者将修改推送至Github远程仓库,并在一个pull request中完成合并操作。