在什么情况下git merge可以放弃文件中的更改? 在我的提交历史记录中,我看到我在主列表/Index.cshtml文件中添加了几行内容 自3个月前以来,没有其他人编辑过该文件 提交后,出现了一些已解决冲突的合并,之后出现了一个无冲突的合并,删除了文件中的这些行 在文件历史记录中,除了3个月前的更改外,没有其他更改

在什么情况下git merge可以放弃文件中的更改? 在我的提交历史记录中,我看到我在主列表/Index.cshtml文件中添加了几行内容 自3个月前以来,没有其他人编辑过该文件 提交后,出现了一些已解决冲突的合并,之后出现了一个无冲突的合并,删除了文件中的这些行 在文件历史记录中,除了3个月前的更改外,没有其他更改,git,git-merge,atlassian-sourcetree,Git,Git Merge,Atlassian Sourcetree,在我添加行的地方提交: 删除它的合并: git log--graph--full history--ABC/Views/Masterlist/Index.cshtml生成了以下内容: git log-S“-webkit转换:translateY(-100%)旋转(90度);/*Safari*/“-c产生了以下结果: 我的问题是: 添加的行怎么可能被删除?会出什么问题 如何防止这种情况发生 为什么文件历史记录中没有条目 在使用git时,我们正在使用源代码树或Visual studio。看起

在我添加行的地方提交:

删除它的合并:

git log--graph--full history--ABC/Views/Masterlist/Index.cshtml
生成了以下内容:

git log-S“-webkit转换:translateY(-100%)旋转(90度);/*Safari*/“-c
产生了以下结果:

我的问题是:

  • 添加的行怎么可能被删除?会出什么问题
  • 如何防止这种情况发生
  • 为什么文件历史记录中没有条目

  • 在使用git时,我们正在使用源代码树或Visual studio。

    看起来错误的合并是
    4246a2
    ,它无法从
    2f3f2a
    获取更改

    我非常确定(信任提交消息中的冲突文件列表,并将1%留给某些重命名检测变得疯狂,尽管我不知道在不删除文件的情况下如何实现),如果您查看
    3505b4
    commit and merge
    2f3f2a
    ,重新生成带有冲突的合并,您将有一个文件
    ABC/Views/Masterlist/Index.cshtml
    ,该文件与您的更改完全同步,没有冲突

    如果它证实了这一点,那么在解决冲突的过程中就应该出了问题。我认为你应该重新审视与此人解决冲突的过程。我可以想象发生这种情况的两种选择:

  • 解决冲突的工具/流程出错

  • 执行
    4246a2
    合并、使用
    -sours
    并手动带来另一个父级更改的开发人员,不知何故跳过了该文件的更改


  • 我想你需要显示一些带有“何时何地发生了什么”的图表。
    git log--graph--full history--
    显示了什么?如果你知道删除行的一些关键字,你可以尝试
    git log-S“关键字”-c
    查找包含关键字的差异提交。我敢打赌5美元,有人做了一个
    git merge-sours
    @max630我知道
    strategy=ours
    用于完全忽略合并的一方。。。很可能不是我的问题,因为其他文件合并得很好<代码>git diff 3505b4..4246a2没有显示太多。。。在其他文件中有差异,但在我的文件中没有。你是对的!在复制合并时,主列表/索引中的更改是可见的。您是否知道如何检查在解决冲突时可能出现的问题?我们没有使用git命令,而是使用SourceTree来处理git,有时使用VS,有时使用TurtoiseEmerge来解决冲突。我使用VS,但不是git。