首页 > 解决方案 > Git 在从分支合并到 Master 期间替换文件

问题描述

我正在尝试将一个分支合并到 master,但 git 说存在冲突。由于我试图合并到 master 的分支有更新的更改,我希望所有这些都去替换 master 中的代码。为什么 git 抱怨存在冲突,而不是用我试图合并的分支中的文件替换 master 中的整个文件。我想知道如何解决这个问题,并告诉 git 基本上用我试图合并的分支中所做的任何更改来替换 master 中的所有文件。

标签: gitversion-controlgit-merge

解决方案


Git 可以毫无问题地自动合并内容。但有时它会失败。我们称之为合并冲突

当出现冲突时,Git 将合并它可以合并的内容,而当它不能合并时,它会给您留下一个标志,告诉您手动合并。 >>>并且<<<是那些特殊的市场之一。

何时发生合并冲突?

Git 跟踪文件中的行。当在不同的分支中修改完全相同的行时,就会发生合并冲突。因此,Git 会感到困惑,即更改将保留第一个分支或第二个分支的分支,并在此处出现冲突。您可以将冲突视为可怜的 Git 对它的理解感到困惑 :)。

合并冲突指标说明了什么?

  • <<<<<<< HEAD:该指标之间的所有行,直到出现新的行显示当前分支中的内容。
  • ||||||| merged common ancestors:此指示器之间的所有线直到出现新的线显示原始线是什么。
  • =======这是原始行的结束指示符。该指示器之间的所有线直到新指示器出现为止都告诉您正在合并的分支上的内容。
  • >>>>>>> heading-update这是行中合并的分支的结束指示符。

如何解决冲突合并?

要解决冲突,您需要选择保留哪条线并删除带有指示器的线。

接下来是什么?

删除带有冲突指示符的行后+选择要保留的行。只需将文件暂存并提交即可。

现在我们开始!你做到了。这不是那么棘手;)。

例子:

冲突后你在文件中得到了什么:

#print hello 
<<<<<<< HEAD 
        print("Hello")
||||||| merged common ancestors
        print("Hi")
=======
        print("Holla")
>>>>>>> heading-update

#print good luck
print("Good luck")

所以:

  • print("Hello"):这是当前分支中的内容。
  • print("Hi"): 原来的。
  • print("Holla"):正在合并的分支上的内容。

因此,决定保留其中的哪一个,并使用指标删除所有其他的。或者,您可以创建一个新的。最后,我们得到一个像这样的整洁的东西,例如:

#print hello 
print("Ohayo :D")

#print good luck
print("Good luck")

在这里阅读更多:)。

祝一切顺利 :)。


推荐阅读