vscode 中git解决冲突,合并代码的两种方法

Posted 铁锤妹妹@

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vscode 中git解决冲突,合并代码的两种方法相关的知识,希望对你有一定的参考价值。

一. 背景:

今天在把pre-master分支代码合并到master分支时候,出现了代码冲突,当时在没有先解决冲突的情况下,稀里糊涂点击了vscode工具栏左侧的 暂存,现在记录一下。

下图是稀里糊涂暂存的然后 push 到了master分支上,提交git;导致保留了两份代码,这肯定是不行的,我实际想保留的是下面新合并来的代码。

二. 报错信息:

有文件冲突的话,会报错:

 git merge pre-master   //合并 pre-master 分支到 master 主分支
 CONFLICT (content): Merge conflict in utils/config.js   //冲突内容;在until/config.js中合并冲突
 Automatic merge failed; fix conflicts and then commit the result.  //自动合并失败;修复冲突,然后提交结果

三. 解决方法一(借助vscode):

用了git,由于不同的需求可能开了不一样的分支,而不同的分支里,改了同一个文件,那么合并代码的时候,就会有一个问题?到底该采用哪个分支的代码为准呢?

可以看到,没有冲突的文件被放进了暂存栏目下,而合并栏目下,是存在冲突代码的文件。

出现冲突的文件会包含一些特殊区段,看起来像下面这个样子:

<<<<<<< HEAD
<div id="footer">
let name = '111'
</div>
=======
<div id="footer">
let name = '222'
</div>
>>>>>>> pre-master

其中,=======上面是当前分支(也就是master)的代码,=======下面是要合并进来的分支的代码,两者发生了冲突。

上面代码可以看出新改动的是let name = ‘222’ 只需要点击 采用传入的更改 就行;他有几个选择,采用当前更改,采用传入的更改和都采用。也可以选择比较不同。

解决方法二(手动删除冲突):

左侧工具栏会出现冲突文件个数,然后点击冲突文件手动进行修改冲突。

分析两段的代码是实现相同功能而写的重复的代码还是各自实现的不同的功能的代码。
如果是重复代码:两个二选一删除一个,然后再把这些冲突标示符删除即可;
如果不是重复代码,两个都需要保留,只把冲突符号删除即可。

两种方法 冲突解决后都需要再重复一遍流程

git add -A    //添加暂存区
git commit -m 'xxxx说明'   //commit说明
git push   //push推到远程

即可完成一次冲突的合并。

在解决问题过程中也去百度了不少文章,记录一下吧
gitee官方说明如何处理代码冲突 有视频
vscode中如何解决git冲突?
vscode 中的git的提交、合并、解决冲突 包含vscode暂存,提交文件说明快捷方式

以上是关于vscode 中git解决冲突,合并代码的两种方法的主要内容,如果未能解决你的问题,请参考以下文章

Idea 中解决git冲突

Idea 中解决git冲突

GIT学习随笔

在vsCode中用git命令合并分支

在VSCode中使用Git处理文件冲突(pull不能从服务器拉取代码)

Eclipse中git冲突怎么解决