A-B-C Master
\D-E Feature
git checkout feature
执行rebase
命令后 - 从feature
分支>git rebase master
我所有的提交消失了,所以我有A-B-C
提交。 feature
分行在重新绑定后看起来像master
。另外重新绑定不会给出任何错误,但它不会显示'提交重播'消息,我认为它通常会在重新绑定期间显示。你知道可能导致这种行为吗?混帐后失踪提交重订
当我发现我的提交消失后,我运行以下命令在git历史记录中查找缺少的代码:git rev-list --all | xargs git grep expression
该命令返回一个提交哈希,但是当我运行git log(因为rebase)时,这个哈希不存在。如果我做git reset --hard missing-hash
我可以再次看到原始(正确)feature
代码。运行rebase master
再次重现相同的问题。
编辑:我刚刚发现我有一些额外提交类似WIP on commit-message
和index on commit-message
当我做git reset --hard missing-hash
可以将其与git stash/git stash apply
ahh,试试这个:http://gitready.com/advanced/2009/01/17/restoring-lost-commits.html – unixmiah 2014-11-25 02:50:49
我知道如何让我的文件恢复。另外'合并主'也适用。我想知道什么可能会导致rebase命令的这种行为 – jonasnas 2014-11-25 03:00:37
这些提交D和E在内容上与提交的主内容有些相同吗? (在这种情况下,他们在rebase期间将被跳过) – VonC 2014-11-25 07:05:13