【问题标题】:Git merge not showing conflicts when file is replaced替换文件时Git合并不显示冲突
【发布时间】:2021-10-31 11:54:17
【问题描述】:

我一直在尝试做以下事情:

  • 在 master 上处理 test.txt
  • 提交并推送
  • 创建新分支并结帐
  • 将 test.txt 替换为具有不同内容的新 test.txt
  • 结帐给主人
  • 合并新 test.txt 的内容被 NEW 的 test.txt 内容完全覆盖。 为什么合并不显示冲突?我想合并两个分支中 test.txt 的内容。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。
  • 您似乎没有在签出 master 和 merging 之前添加并提交更改?
  • 你描述你所做的事情的方式,似乎你在提交更改后从 master 创建了分支 NEW。如果是这种情况,则没有要解决的冲突,NEW 上的提交表示将 master 上的最新版本更改为这个不同的版本,所以这是一个干净的合并。如果 NEW 在您对 master 上的 test.txt 进行更改之前从 master 分支,您只会遇到冲突。

标签: git merge


【解决方案1】:

您已在 master 分支上对 test.txt 进行了更改并将更改推送到 master

现在索引将指向最新的提交 - 提交 test.txt 的更改

在您创建新分支并对同一文件 test.txt 进行更改并尝试将新分支合并到 master 后,它不会引发冲突,因为两个索引都将指向相同的提交。

您将在以下情况下遇到冲突,而不是在上述情况下

git pull origin master

git branch Branch1
git branch Branch2

当你尝试时

git branch

* master
Branch1
Branch2

git checkout Branch1

更改 test.txt 并提交

git checkout master
git merge Branch1

git checkout Branch2

更改 test.txt 并提交

git checkout master
git merge Branch2

当您尝试合并 Branch2 时,您会遇到冲突,因为两个分支都对同一个文件进行了修改

【讨论】:

  • 感谢@Nataraja B 的快速回复,但我得到了同样不想要的结果。我将举一个小例子:master LINE 1 LINE 2 LINE 3 上的 test.txt 而在 Branch1 上,我将 test.txt 替换为 LINE 2.2 回到 master 并将 Branch1 结果合并到 LINE 2.2 我期望: LINE 1 LINE 2 或 LINE 2.2(冲突)LINE 3
猜你喜欢
  • 1970-01-01
  • 2022-06-22
  • 2017-07-24
  • 1970-01-01
  • 1970-01-01
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多