Git rebase to previous commit提供了错误的提交列表

时间:2016-01-02 00:15:22

标签: git github git-rebase

我的存储库中有这样的历史:

enter image description here

现在我想修复那些我的合作伙伴没有正确创作的3次提交,我已经在使用this答案作为指南之前完成了这项工作。所以既然我想改变那些3,我想我会在git rebase -i face866重新定义,所以我跑

fcc7a9b

但奇怪的是,这是我遇到的提交列表

enter image description here

2459b012f805cd18bc0ad都有意义,但git push --force在哪里?为什么从7天前提交的所有提交都被删除了?从11天前的提交继续,它们都有不同的标签吗?

更奇怪的是,如果我在Github的应用程序中打开回购,它说我的历史是:

enter image description here

缺少提交。这里发生了什么?提交列表对我没有任何意义,并且应用程序的历史记录错误。我对发生的事情只有一个想法

  • 上次我重新定位时,我使用{{1}}来重写历史记录,我不知道我的伙伴是活跃的,因为他有推送权限,他推动了这些提交< 6天前他的历史很久但似乎并没有像我预期的那样翻倍提交
编辑:装饰日志 enter image description here

1 个答案:

答案 0 :(得分:2)

git rebase会在合并提交18bc0ad之前线性化您的提交历史记录。这就是它失踪的原因。 git rebase有一个你可能知道的--preserve-merges开关,但我建议against using it

在你的情况下,我会说保持历史原样是最好的。根据我的经验,否则你可能会陷入非常痛苦的境地。如果你想尝试,你可以启动rebase,或者当有太多的冲突需要解决时,可以git rebase --abort