以下是发生的场景(我认为这就是我的问题出现的方式,但不能百分之百确定):
- 某人发送了一个PR,我将其合并,但然后使用Github的“还原”按钮将其还原。 - 他又发送了一个带有相同提交记录(加上一个更正错误的提交)的PR。 - 我将其合并(使用Github的“合并”按钮)。 - 在第一个PR中被还原的提交记录已经从主库中消失了!
为什么会出现这种情况?为什么现在,从进行PR的fork来看,虽然这些提交记录不在远程repo的原始分支上,但它说“没有任何可以比较的内容”?
最后,如何恢复这些提交记录?
编辑:如请求所示,以下是我的git日志的有趣部分:
- 某人发送了一个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 Salamingit pull
/merge
)。我该如何避免这种情况?(顺便说一下,为了“修复”它,我不得不挑选所有缺失的提交。) - Bonswouar