如何解决变基之间丢失的 git 提交?

How to resolve missing git commit between rebasing?

好的,所以我知道这不是正确的使用方法 git,但我正在帮助我的同事解决这种特殊情况。

假设我有同事 A 和 B,他们都致力于同一个分支。

有一天,A提交到分支,并同步。当 B 使用 Github 桌面同步(合并)时,B 发生冲突。

B在本地解决了冲突,但是没有commit。 B 继续工作并进行更改。

然后,A再次提交到同一个分支,并同步。

B 然后在本地提交。然后 B 尝试使用 Github 桌面再次进行同步(合并)。

问题是,B 在第一次同步和第二次同步之间的所有更改都消失了。就好像他的提交甚至不存在于 git log 中。我检查了 git log 和 Github 桌面提交历史,两者都显示了同样的东西。

现在他想将同步回滚到他的提交,但他不能这样做,因为提交不存在。连第一次同步的事件都没有

奇怪的是,Android Studio 版本控制登记实际上有这样的提交,有 200 个文件更改。但是当他尝试使用 Android Studio 恢复提交时,只有 1 个文件被恢复,而不是 200 个。

我们如何解决这种情况?我们如何恢复到(看似)不存在的提交?提交是否确实存在但孤立了,并且有办法重新调用它?

git reflog 可以显示孤立的提交。