Git基本操作(11)- git 本地仓库的冲突解决

一、冲突的产生

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的样子

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值