如何解决 git 中的冲突?

How to fix conflicts in git?

当我尝试拉取时,出现以下消息:

Automatic merge failed; fix conflicts and then commit the result.

因此,我按照 these 的说明尝试修复冲突(如 git 所建议)。

我需要做的第一件事是在文本编辑器中打开 "problematic" 文件并找到类似的行

If you have questions, please
<<<<<<< HEAD
open an issue
=======
ask your question in IRC.
>>>>>>> branch-a

问题是我在我的文件中没有看到类似的东西。特别是我搜索了 HEAD 但它不在那里。

有几种方法可以解决git冲突,我将在这里使用GUI和文本编辑器的方式进行说明。

使用文本编辑器解决 git 冲突。

打开您最喜欢的任何一种编辑器,例如记事本、gedit、vim、nano 甚至 Eclipse。

  1. 每当文件中存在冲突时 git 添加冲突标记,如下所示 <<<<<<<<

  2. 当您在文本编辑器中打开该文件时,您会在 <<<<<<< HEAD

    行之后看到 HEAD 或基础分支的更改
  3. ========,它将您的更改从其他分支划分为 >>>>>>>>YOUR_BRANCH_NAME

  4. 您可以决定是否要保留分支更改。如果您想保留所做的更改,请删除它们的冲突标记,<<<<<<<, =======, >>>>>>> 然后进行合并。

提交更改的命令。

git add . or git add "your_file"
git commit -m "Merge conflicts resolved"

正在解决 git GUI 冲突

如果文件中有这么多合并冲突怎么办?在这种情况下,您可以使用 GUI,是否选择 GUI 只是个人选择。在 GUI 中,您可以并排查看差异。初学者很容易看到变化。

您需要配置 git 以使用您想要使用的合并工具。示例:meld、kdiff3 或 vimdiff。同样,这取决于用户的喜好。我用融合。这里需要安装这些工具,安装完成后还要进行配置。

git config merge.tool meld 

你可以解决合并冲突

git mergetool -t meld

那么您可以按照使用文本编辑器解决的步骤2到4来解决合并冲突。