Git教程——merge 分支冲突

文章目录

1.merge 分支冲突

今天的情况是这样, 想象不仅有人在做开发版 dev 的更新, 还有人在修改 master 中的一些 bug. 当我们再 merge dev 的时候, 冲突就来了. 因为 git 不知道应该怎么处理 merge 时, 在 master 和 dev 的不同修改.
当创建了一个分支后, 我们同时对两个分支都进行了修改.

比如在:

  1. master 中的 1.py 加上 # edited in master.
  2. dev 中的 1.py 加上 # edited in dev.
    在下面可以看出在 master 和 dev 中不同的 commit:
$ git checkout master
$ git log --oneline --graph
#输出
d71a779 (HEAD -> master) change 4 in master
3a55f11 edited in master
*   eb21a06 keep merge info
|\  
| * 02e9101 change 3 in dev
|/  
3a6ab58 (train) back to change 2 and add comment for 1.py
2032b89 back to change 1 and add comment for 1.py
2747ffc change 2
16756dc change 1
13abbfd create 1.py
$ git checkout dev
$ git log --oneline --graph
#输出
1d3b96c (HEAD -> dev) change 3 in dev
02e9101 change 3 in dev
3a6ab58 (train) back to change 2 and add comment for 1.py
2032b89 back to change 1 and add comment for 1.py
2747ffc change 2
16756dc change 1
13abbfd create 1.py

在这里插入图片描述
当我们想要 merge dev 到 master 的时候:

$ git branch
* dev
  master
  train
$ git checkout master
$ git branch
  dev
* master
  train
$ git merge dev
#输出
Auto-merging 1.py
CONFLICT (content): Merge conflict in 1.py
Automatic merge failed; fix conflicts and then commit the result.

git 发现的我们的 1.py 在 master 和 dev 上的版本是不同的, 所以提示 merge 有冲突. 具体的冲突, git 已经帮我们标记出来, 我们打开 1.py 就能看到:
在这里插入图片描述
所以我们只要在 1.py 中手动合并一下两者的不同就 OK 啦. 我们将当前 HEAD (也就是master) 中的描述 和 dev 中的描述合并一下.

a = 2
b = 1
c = b
#edited in master and dev

在这里插入图片描述
然后再 commit 现在的文件, 冲突就解决啦.

$ git commit -am "solve conflict"

再来看看 master 的 log:

$ git log --oneline --graph

在这里插入图片描述

发布了91 篇原创文章 · 获赞 274 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_37763870/article/details/104631572