git冲突的产生以及解决

在只有一个本地master分支的情况下是不会产生冲突的,但是通常开发都需要多分支开发,就容易产生合并冲突。以两个分支的冲突为例,具体是两个已经commit的分支对相同文件相同位置的不同操作(比如对代码的同一行进行了不同的修改),然后在主分支进行合并,就会产生冲突。下面举个例子,环境是vscode。
先在master分支创建一个新文件t1.cpp并提交

接下来新建两个分支,模拟两个人来修改t1.cpp

先新建一个分支b1,然后在b1中修改t1.cpp并提交,如下图

然后再创建另一个分支b2做修改,如下图:

然后切换回master分支,假设第一个人用的是b1分支,他写完代码后开始合并到master分支,那当然是成功的,因为在他之前没人合并。

接下来另一个使用b2分支开发的人也要来合并到master分支,就会出现冲突

这就是因为两个不同的分支去修改了同一个文件的同一个位置,而且修改的内容又不一样,一合并到master分支就会出问题。
下面可以使用vscode的“比较变更”进行比对,然后手动去修复冲突,注意这是演示而已,

实际上修复冲突要和其他开发者共同协商,绝对不要擅自拉别的分支去试图解决冲突,或着找文件覆盖 。

同时记住,解决了冲突之后要add和commit 最后push。为保证万无一失,最后在冲突都解决之后,要重启项目,确保没问题之后再去push到远程仓库。下面演示下vscode的比较变更,其他三个选项为冲突修复

下面是比较变更的图

可以看到增减的情况(红色那一行和黄色那一行),但是无法编辑,因为是只读的。可以到其他三个选项去选择修复。
比如我点保留双方更改
就会变成下图

解决冲突后:

最后别忘了push到远程。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值