git分支管理(2)-解决冲突

本文将简单介绍因合并分支所产生的冲突,以及冲突的解决方法

首先创建并切换到新分支dev
并在file文件的最后添加一行:

this is edited by dev branch.

将修改提交到仓库

$ git add .

$ git commit -m '作者dev修改了file文件'
[dev 5fe7b14] 作者dev修改了file文件
 1 file changed, 1 insertion(+)

现在切换到主分支master
并修改file文件的最后一行为:

this is edited by master branch.

并将修改提交到仓库

$ git add .

$ git commit -m '作者master修改了file文件'
[master e5c70e0] 作者master修改了file文件
 1 file changed, 1 insertion(+)

现在,通过查看分支可以看到:两个分支上分别有新的提交

$ git branch -v
  dev    5fe7b14 作者dev修改了file文件
* master e5c70e0 作者master修改了file文件

这种情况下,Git无法执行“快速合并”,
只能试图把各自的修改合并起来,但这种合并就可能会有冲突,
我们试试将dev分支合并到master分支上:

$ git merge dev
Auto-merging file.txt
CONFLICT (content): Merge conflict in file.txt
Automatic merge failed; fix conflicts and then commit the result.

此时git告诉我们,file文件中存在冲突,
必须手动解决冲突后才能提交 (此时就进入了'MERGING'状态)

此时我们应该打开冲突文件file,查看状况
image1.png
在上面的图片中我们可以看到
git已经将冲突产生的内容用<<< === >>>标记起来

此时我们应该与另一个分支上的工作者进行沟通交流
修改文件内容、删除多余符号后 再提交文件到仓库

$ git add .

$ git commit -m '修复了file文件中的冲突'
[master f0cc575] 修复了file文件中的冲突

此时,我们成功解决了冲突
可以通过带参数的git log来查看分支的合并情况

$ git log --graph --pretty=oneline --abbrev-commit
*   f0cc575 (HEAD -> master) 修复了file文件中的冲突
|
| * 5fe7b14 (dev) 作者dev修改了file文件
* | e5c70e0 作者master修改了file文件
|/
* 4c25416 提交了file文件

最后删除dev分支

$ git branch -d dev
Deleted branch dev (was 5fe7b14).
原文地址:https://www.cnblogs.com/baebae996/p/12971055.html