【问题标题】:Why does git merge generate conflicts across different files?为什么 git merge 会在不同文件之间产生冲突?
【发布时间】:2013-10-27 13:17:59
【问题描述】:

我正在尝试将一个分支与主分支合并。令人惊讶的是,git 发现了不同文件之间的冲突! 我习惯了同一个文件的冲突,但无法理解不同文件之间的冲突背后的概念。

情况如下:

  • 有 2 个分支:masterbranch1
  • file1.ini:
    • in master: 已被移除
    • branch1中:已修改(与master的共同祖先相比)
  • master 有一个新文件:folderA/file2.ini
  • file1 未移至 folderA/file2.ini

合并命令后:

  • file1.ini已被删除
  • 新的“folderA/file2.ini”包含冲突标记,例如:

    ...

    =======

    ...

    >>>>>>> master:folderA/file2.ini

我对文件混合感到困惑。

【问题讨论】:

  • 删除file1.ini 的提交与添加回folderA/file2.ini 的提交是否不同?

标签: git merge conflict


【解决方案1】:

Git 会根据文件相似性进行动态重命名检测。删除的file1.ini 与保留的folderA/file2.ini 更相似,而不是删除,因此 git 试图将其视为重命名和编辑。

(简而言之,在这种特殊情况下,这只是算法失灵。)

【讨论】:

猜你喜欢
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-11
  • 2013-03-25
  • 2020-08-11
  • 2013-05-02
  • 1970-01-01
相关资源
最近更新 更多