赞
踩
本地操作git,不小心点了reset current branch to here操作,导致把本地的代码回退到了某一个历史的提交版本中,这个命令会移动当前分支的指针(HEAD)到指定的提交,根据提交时的不同选项,会改变工作目录和暂存区的内容。
但是如果一不小心,误操作了reset current branch to here怎么办,不要慌,只要你没提交覆盖远程分支的代码都好办,那么如何去进行恢复呢,现在教你如何操作。
撤销操作之前,首先需要弄清楚你要撤销之前对应的提交ID是啥,此时你先检查 Git 的引用日志(使用git查询提交日志命令),以查看 HEAD 的历史移动记录。这可以帮助你确定之前 HEAD 的位置,并尝试恢复它。也可以直接去远程git仓库中查看最新的提交ID,以用来恢复到这个ID。
- git reflog
- 或
- git log -g
找到了最新的提交ID后,比如最新的提交ID是999,那么就通过git reset --撤销策略参数 999 命令来恢复到你误操作之前的ID上,注意,这里的撤销策略参数是用哪个取决于你误操作时选的是哪种策略,要对应起来,比如误操作是选的是Mixed,那么这里命令就是
git reset --Mixed 999
TIP:撤销 git reset
的影响取决于你执行的是哪种类型的 reset
(软、混合或硬)。以下是针对不同类型 reset
的撤销策略:
git reset
命令再次移动 HEAD 指针回到原来的位置。例如,如果你软重置到了 HEAD~1
,那么可以使用 git reset HEAD@{1}
来撤销这次操作(HEAD@{1}
是 Git 的引用日志中的一个条目,表示之前 HEAD 的位置)。执行完之后本地的变更目录中会出现差异代码,此时需要你手动归并下代码,如果你本地没有新增的代码,你想把远程的代码直接覆盖本地,那么就选中,然后Rollback覆盖本地(注意这里会覆盖你本地写好而未提交的代码)
其实上面的操作就是找到误操作前的提交ID,然后重置到该分支,如果你觉得麻烦,那么你基于该提交ID直接重新拉个新的本地分支得了
git branch newBranceName 999
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。