Git 取证:dev 分支上的所有更改在合并到 master 后都消失了

Git forensics: all changes on dev branch disappeared after merge into master

我的团队刚刚发现,当开发分支合并到 "master" 时,该分支的所有更改(编辑、添加的文件)都消失了。

-- A --- B --- D --   "master"
    \         /
      -- C --       "dev"

git diff D B 没有区别。

git diff D C 差异很大。

应该没有合并冲突。

合并可能是使用 SourceTree 执行的。

对于这样的事情是如何发生的,是否有一个简单的解释?我们希望避免再次这样做。

谢谢!

在 Git 中获得它的唯一方法是明确要求它。有多种方法可以做到这一点,有多种工作流程,这是合法的合并结果,但这不是默认的,你不能只是粗暴地提出请求,你必须提出要求。一种方法是 -s ours 合并。另一个是在提交合并之前执行 git reset HEAD。如果 SourceTree 可以轻松解决这个问题,那就是他们。