Git - 同事在解决冲突时以某种方式覆盖了我的整个提交

Git - coworker somehow overwrote my entire commit while resolving a conflict

这是他说的:

There was a merge conflict so I chose mine.

我看到的是我的更改完全消失了。提交就在那里,但是如果我继续 GitHub 并单击文件的 'history',没有任何迹象表明我的更改曾经在那里。我发现了有罪的提交,但它只说了:

Conflicts:
        .../<file>.js

我看到的看起来可疑的是提交的标题:

Merge remote-tracking branch 'origin/development' into devenv

但是development是我们的远程分支,所以我猜他合并到他的本地分支,搞砸了,然后不小心将他的本地分支推到了development

这会导致我描述的行为吗?关于解决此问题的干净方法的任何想法?

编辑:看起来 cherry-pick 解决了这个问题,但我仍然不太明白它是如何进入这种状态的。我找不到任何强制推动的证据(Git 不是星球大战)。

Git 中什么都没有消失。您可以执行以下操作之一:

  1. 撤消对开发分支的合并。 Undo a Git merge that hasn't been pushed yet
  2. 从历史中挑选你的最后一次提交(包括你所有的贡献)。 How-to git backport (rebase/cherry-pick) an already merged branch