如何在Git中解决合并冲突(下)

80 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

在Git中解决合并冲突的步骤

让我们举几个现实生活中的合并冲突的例子,并学习如何解决它们。

示例1:更改位于文件的同一区域

当Git因更改在同一区域而无法执行自动合并时,它会指示具有特殊字符的冲突区域。字符序列如下:

  • <<<<<<<
  • =======
  • >>>>>>>

<<<<<<<=======之间的所有内容都是您的本地更改。这些更改尚未在远程存储库中。=======>>>>>>>之间的所有行都是来自远程存储库或其他分支的变化。现在你需要调查这两个部分并做出决定。

下图显示了文件的内容,表明没有发生自动合并,并且存在冲突。冲突在一行中,我们通过添加一行- Sleep在本地修改了文件。但与此同时,其他人通过在同一地区添加线路- Gym推动变革。

因此,行- Sleep被标记为本地更改,- Gym标记为来自远程存储库或其他分支的传入更改。

合并冲突

由于同一地区的变化而合并冲突

根据您的用例和项目需求,您将拨打电话来解决冲突。如果您只需要保留与- Sleep的行,您将保留它,并删除其余的冲突文本。在这种情况下,文件内容变成了:

- Eat
- Read
- Sleep

相反,您可以保持线- Gym并删除- Sleep变化:

- Eat
- Read
- Gym

如果您需要保留这两行,请删除与冲突指标相关的行:

- Eat
- Read
- Sleep
- Gym

如果您认为不需要任何更改,请全部删除。

- Eat
- Read

完全由你来决定哪些变化与情况有关。更改后,您需要确保文件中不存在任何表示冲突的字符(<<<<<<<<<, =======, >>>>>>>)。解决更改后,请执行以下操作:

进行更改:

git add <files>

用消息提交更改:

git commit -m "Message"

最后,将更改推送到遥控器:

git push

这就是解决这种情况中合并冲突的全部。

示例2:文件在远程/其他分支被删除

在删除的文件合并冲突中,开发人员删除一个分支中的文件,而另一个开发人员在另一个分支中编辑同一文件。在这种情况下,您需要决定是要保留该文件,还是删除该文件是正确的。

要将已删除的文件重新添加到分支中,请执行以下操作:

git add <file-name>

要继续删除文件,请执行以下操作:

git rm <file-name>

然后用一条消息提交更改:

git commit -m "Message"

最后,推送它:

git push

结论

如果您从上述两个示例中学习并练习它们,您将能够处理大多数场景并解决合并冲突。因此,我建议练习几次。