如何解决git合并冲突

Git是开源项目和许多封闭源项目的标准源码管理工具。这篇文章向Git新手展示如何做一些稍微高级但至关重要的事情:解决git合并冲突。

什么是git 合并?

所有现代源代码管理系统都有一个基本特征:多个开发人员能够同时在同一项目上工作,而不会相互干扰。Git通过允许多个开发人员在本地的分支上工作来实现这个特性,然后将他们的代码推到一个中心位置。然后,其他人可以将代码拉回到他们的本地副本,这样他们就可以在别人的代码基础上继续工作。

当您想要将某个分支中的更改应用到当前分支时,可以使用git merge命令。合并操作会将其他分支中的所有更改应用到当前分支。

什么是合并冲突?

在并行工作的模式下,工作最终会发生重叠。有时两个开发人员会以两种不同的方式更改同一行代码;在这种情况下,Git无法判断哪个版本是正确的,这时只有开发人员才能决定。

如果发生这种情况,开发人员将在git合并过程中看到以下错误:

解决合并冲突可能只需要一分钟,也可能需要几天时间(如果有许多文件冲突需要解决)。我建议要经常提交、推送、拉取和合并,每天多次同步你的代码,这样可以减少冲突的可能。

如何解决git合并冲突?

Git在其错误消息中给出了解决冲突的提示信息。在[filename1]中显示有合并冲突,所以你知道该文件有问题。然后它提示你需要先解决冲突,然后提交结果,所以如果你遵循它的提示,编辑文件,然后提交,一切都会正常工作。让我们实战演示一下吧。

创建一个新的Git仓库,添加一个文件,创建一个分支,进行一些有冲突的编辑,然后看看它是什么样子。

先在一个空目录中运行git init:

现在创建一个README文件并提交更改:

创建一个新分支:

在新分支中:

编辑文件:

现在提交更改:

返回到master分支,编辑README的第3行,输入一些不同的文字,然后提交。

回到master分支:

编辑README:

提交更改:

把分支合并到master会看到错误:

现在打开README文件,看起来如下:

如你所见,Git增加了7个“小于”符号,还有7个“大于”符号,中间还有7个“等于”符号。你可以在编辑器中搜索这些字符快速找到有冲突的地方。

1.“小于”符号表示的是当前分支的修改(本例中是“HEAD”,表示当前分支),等于符号表示当前分支的结束。

2.“等于”符号下方至“大于”符号之间的部分,表示尝试合并的文件修改。

作为开发者,由你来决定哪些内容保留哪些内容删除。根据需要编辑之后,然后关闭文件:

在上面我们采纳了分支中的修改,你可以运行 git status 来查看更多指令:

注意如果你遇到了严重的问题,可以选择停止合并,运行 git merge –abort 可以停止合并。

运行如下命令增加文件,然后提交:

总结

如果时间足够长的话,任何规模的团队都会遇到合并发生冲突的问题。作为开发者,我们要保持清醒的头脑,知道自己在做什么,哪些是我们需要的代码修改。当你遇到合并冲突时,理解这部分知识至关重要。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200619A0GNFH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券