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