我在一个名为auth+menus
的功能分支中工作,下面是我需要帮助尝试恢复的事件和操作的顺序。我担心我失去了所有的工作,我希望我错了。
git commit -m "code changes"
git commit -m "more changes"
git rebase -i HEAD~2
git checkout master
git pull upstream master
git checkout auth+menus
git rebase master
git rebase --continue
存在单一冲突
git rebase --skip
git add --all
git commit -m "some of these files should have already been committed"
git push origin auth+menu
git push origin auth+menu -f
因为我是个白痴......
我希望我没有完全丢失前两次提交中的所有内容,我真的需要别人的帮助!有没有办法从中恢复并得到我原来的两个提交?
答案 0 :(得分:4)
git reflog
。你会看到类似的东西:
33103ca HEAD@{0}: commit: Using arguments on command line to specify revision ra
46d9365 HEAD@{1}: commit: more changes
1dfdc0d HEAD@{2}: commit: code changes
31a16ad HEAD@{3}: merge test2: Merge made by the 'recursive' strategy.
1dfdc0d HEAD@{4}: commit: .
ddc65bf HEAD@{5}: checkout: moving from test2 to master
236c36d HEAD@{6}: commit: .
ddc65bf HEAD@{7}: checkout: moving from master to test2
ddc65bf HEAD@{8}: commit: .
be347db HEAD@{9}: checkout: moving from be347db616c39dadad59308bee5736e5614e7d61
嗯,它可能看起来不那么像,但关键是找到“提交:更多更改”的行。来吧,标记那个傻瓜;在这种情况下,它将是git tag mytag HEAD@{1}
。然后你可以合并那个标签,樱桃挑选它,或者其他什么。