Git 在从分支合并到主控期间替换文件

Git Replace Files During Merge to Master From Branch

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

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

当出现冲突时,Git 会合并它能合并的东西,当它不能合并时,它会给你留下一个标志,告诉你手动合并它。 >>><<< 是这些特殊市场之一。

何时发生合并冲突?

Git 跟踪文件中的行。当在不同的分支中修改完全相同的行时,会发生合并冲突。所以 Git 会感到困惑,因为更改会保留第一个分支或第二个分支的分支,并且这里会出现冲突。你可以把冲突想成是穷人 Git 混淆了理解它 :).

合并冲突指示器说明了什么?

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

如何解决冲突合并?

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

下一步是什么?

删除带有冲突指示符的行后 + select 保留哪些行。只需保存文件阶段并提交即可。

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

示例:

这是冲突后文件中的内容:

#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")

阅读更多 here :).

祝一切顺利:)。