我在分支机构" master"。 我有这样的git历史:
333 (#82)
444 (#83)
然后我做了一些提交和恢复(222-> 111-> 010-> 789-> 456-> 123):
123 Revert "(#84)"
456 Revert "(#81)"
789 Revert “(#81)"
010 Revert "(#86)"
111 (#86)
222 (#84)
333 (#82)
444 (#83)
我需要以某种方式清除那些错误的步骤(222-> 111-> 010-> 789-> 456-> 123)以将历史返回到:
333 (#82)
444 (#83)
如果我这样做会没问题:
git rebase -i 333
并会丢失错误的提交? 然后
git push -f
答案 0 :(得分:1)
假设您没有推送提交并恢复,执行以下操作:
git reflog
这将以反向时间顺序为您提供操作列表(包括所有恢复和提交)。找到最后一个稳定的提交,并以HEAD@{somenumber}
的形式找到它的头部。然后回到该提交,执行以下操作:
git reset --hard HEAD@{somenumber}