【问题标题】:How to fix conflicts in git?如何解决 git 中的冲突?
【发布时间】:2018-05-15 06:58:02
【问题描述】:

当我尝试拉取时,我收到以下消息:

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

因此,我尝试解决冲突(如 git 建议的那样),因为我遵循 these 说明。

我需要做的第一件事是在文本编辑器中打开“有问题的”文件并找到类似的行

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

问题是我在我的文件中没有看到类似的内容。特别是我搜索了 HEAD,但它不存在。

【问题讨论】:

  • git status 是否列出任何“双方”修改的文件?您确定您正在查看正确的文件,并且您在整个文件中搜索了冲突标记吗?
  • 在某些编辑器中,您需要重新打开文件才能看到冲突标记,这些编辑器不会在后台监视文件更改(有些更糟,会用自己的更改再次覆盖文件)
  • 列出许多选项(例如 Meld、DiffMerge、KDiff3)的热门帖子在这里:stackoverflow.com/questions/137102/…

标签: git merge git-merge git-merge-conflict


【解决方案1】:

解决git冲突的方法有多种,这里我会用GUI和文本编辑器的方式来说明。

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

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

  1. 当文件中出现冲突时,git 添加冲突标记,看起来像这样&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;

  2. 当您在文本编辑器中打开文件时,您会在 &lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD 行之后看到来自 HEAD 或 base 分支的更改

  3. ========,它将您的更改从另一个分支划分为&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;YOUR_BRANCH_NAME

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

提交更改的命令。

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来解决合并冲突。

【讨论】:

  • 我看到一些字符串,可能是 id,而不是“YOUR_BRANCH_NAME”。那个 id 是干什么用的?
  • 参见:设置和使用 Meld 作为您的 git difftool 和 mergetoolstackoverflow.com/q/34119866/2102457
猜你喜欢
  • 2017-08-13
  • 1970-01-01
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-11
  • 2011-10-05
  • 2023-03-21
相关资源
最近更新 更多