我是版本控制系统(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
提交的基础上创建另一个提交,它可以有效地撤消拉取的部分,但这不太实用,并且仅注意完整性。