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 中什么都没有消失。您可以执行以下操作之一:
- 撤消对开发分支的合并。 Undo a Git merge that hasn't been pushed yet
- 从历史中挑选你的最后一次提交(包括你所有的贡献)。 How-to git backport (rebase/cherry-pick) an already merged branch
这是他说的:
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 中什么都没有消失。您可以执行以下操作之一:
- 撤消对开发分支的合并。 Undo a Git merge that hasn't been pushed yet
- 从历史中挑选你的最后一次提交(包括你所有的贡献)。 How-to git backport (rebase/cherry-pick) an already merged branch