如何在提交之前恢复并转到上一阶段



我是版本控制系统(git(的新手。我犯了一个错误,当我意识到它发生的时候已经太晚了。我做了什么

(1) commit current work 
(2) git pull --rebase origin master

然后我使用进行上一次提交

(3) git checkout 858223adcac47288c44c4c07fbc3938773d778b8

现在,我需要先进行上一阶段(1(,然后再提交。我真的不知道怎么去那里这意味着我想去我的主人那里,撤消重置
如果有人告诉我怎么做,我衷心感谢。

git保存refs(读取branches(的历史记录,主要用于当您想要从任何当前refs都无法访问的提交时的此类场景。

除非经过了足够的时间,或者您明确地使reflog条目过期并进行垃圾收集,否则通过发出git reflog <branch><sha> <action description leading to changing value of branch>的形式输出要分支到的更改(从最近的更改开始(,历史记录是可用的。

找到你想回到的那个(可能是你提到的提交之前的那个(,检查:

git reflog master

查看它以仔细检查内容:

git checkout <sha>

移动到主控,reset主控到该提交(注意,如果使用不当,hard reset可能会有危险/麻烦(:

git checkout master

git reset --hard <sha>


一些注意事项:

git-rebase的工作原理。这将有助于理解no longer reachable如何在rebase期间出现https://git-scm.com/book/en/v2/Git-Branching-Rebasing

也可以在rebased提交的基础上创建另一个提交,它可以有效地撤消拉取的部分,但这不太实用,并且仅注意完整性。

最新更新