Git / Github:提交记录丢失

5
以下是发生的场景(我认为这就是我的问题出现的方式,但不能百分之百确定):
- 某人发送了一个PR,我将其合并,但然后使用Github的“还原”按钮将其还原。 - 他又发送了一个带有相同提交记录(加上一个更正错误的提交)的PR。 - 我将其合并(使用Github的“合并”按钮)。 - 在第一个PR中被还原的提交记录已经从主库中消失了!
为什么会出现这种情况?为什么现在,从进行PR的fork来看,虽然这些提交记录不在远程repo的原始分支上,但它说“没有任何可以比较的内容”?
最后,如何恢复这些提交记录?
编辑:如请求所示,以下是我的git日志的有趣部分:
* | |   25f28fb Merge branch 'FooUser-develop' into develop
|\ \ \
| * \ \   73768b7 Merge branch 'develop' of https://github.com/FooUser/mainRepo into FooUser-develop
| |\ \ \
| | * | | 2e61235 Invert adresses
* | | | |   d522031 Merge branch 'develop' of https://github.com/mainUser/mainRepo into develop
|\ \ \ \ \
| |/ / / /
|/| | | |
| * | | |   1e6e61b Merge pull request #946 from mainUser/revert-945-develop
| |\ \ \ \
| | * | | | 6767f03 (origin/revert-945-develop) Revert "Corrections"
| |/ / / /
| * | | |   5ccc9cd Merge pull request #945 from FooUser/develop
| |\ \ \ \
| | |/ / /
| | * | | 6e0c08b Corrections structuration
| | * | | f7ade9b Correction
| | * | | 4844437 Nb to Str
| | * | | 1729a83 Fix adress
| | * | | ceab88d Corrections: @ssert
| | * | | a3c8d1a #891 Fix
| |/ / /

我显然遗失了大部分的第一个提交(例如,#891 Fix)。

再搜索一些,我发现例如我在a3c8d1a中添加的一些文件(第一次提交)在73768b7中被正确地合并了(倒数第二个)-它们不单是因为撤销而在d522031之前被删除-但是在25f28fb中消失了(最后一个)。

编辑2: 我认为问题是因为分支没有同步(他没有在我接受他的请求并撤回时进行git pull/merge)。我该如何防止这种情况? (顺便说一下,要“修复”它,我不得不挑选所有丢失的提交。)


你能提供你的代码库中的 git log --graph --oneline --decorate --all 吗? - Joël Salamin
有许多其他的提交,我要试着把它清理一下! - Bonswouar
1
只需要最后10个提交记录就足以更好地了解情况。只需在先前的命令中添加“-10”即可。 - Joël Salamin
刚刚更新了我的帖子,希望足够清晰明了。 - Bonswouar
我认为问题出在分支没有同步(他在我接受了他的PR并撤销后没有进行git pull/merge)。我该如何避免这种情况?(顺便说一下,为了“修复”它,我不得不挑选所有缺失的提交。) - Bonswouar
1个回答

1

这就是我担心的事情。所以当你有一个公共仓库时,你必须非常小心。谢谢! - Bonswouar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接