一、冲突的产生
1、A在dev分支改了1.txt文件的第一行,并提交到本地仓库
2、B在master分支上,也改了1.txt的第一行,并提交到了本地仓库
3、此时,master想要合并dev的修改,可是,两个都改了第一行,这样就会合并不成功,git提示我们要处理冲突
二、实现一下
1、我们在master分支下创建一个diff.txt文件,并往里输入一行字,提交到本地仓库
D:\git (master)
λ git add .
D:\git (master)
λ git commit -m "master第一次提交,加了一行111111"
[master (root-commit) 4a2c06b] master第一次提交,加了一行111111
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 diff.txt
2、我在master分支上再修改一下diff.txt文件,也提交到本地仓库
D:\git (master)
λ git commit -a -m "master第一次提交,增加22222222"
[master be14899] master第一次提交,增加22222222
1 file changed, 2 insertions(+)
3、现在我创建一个dev分支,因为dev和master同时指向同一提交,所以他能看见master里所有的东西
D:\git (master)
λ git checkout -b dev
Switched to a new branch 'dev'
D:\git (dev)
λ ls
diff.txt
4、现在我在dev分支,修改diff的第一行,并提交
D:\git (dev)
λ git commit -m "dev第一次提效,修改了第一行"
[dev 97c0442] dev第一次提效,修改了第一行
1 file changed, 1 insertion(+), 1 deletion(-)
5、现在我切到master分支,查看diff文件,因为现在master和dev不再指向同一个提交,因此master的diff.txt文件是看不到dev的修改的
6、那我现在在master分支也修改第一行 ,然后也提交
D:\git (master)
λ git commit -a -m "master 第三次修改 修改diff 第一行"
[master 2d901fb] master 第三次修改 修改diff 第一行
1 file changed, 1 insertion(+), 1 deletion(-)
7、我现在想合并dev,结果出现了冲突
D:\git (master)
λ git merge dev
Auto-merging diff.txt
CONFLICT (content): Merge conflict in diff.txt
Automatic merge failed; fix conflicts and then commit the result.
原因就是,dev改了第一行,master也改了第一行,git没办法判断要以谁的修改为主,需要手动修改,
8、现在我们查看一下diff.txt
现在我想保留dev的修改,将master的删掉
然后再git add ,git commit
D:\git (master)
λ git add .
D:\git (master)
λ git commit -m "解决冲突,合并dev"
[master 065aa80] 解决冲突,合并dev
现在master中diff.txt的样子