错误的git reset操作之后的补救措施

Posted Jenna_Wu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误的git reset操作之后的补救措施相关的知识,希望对你有一定的参考价值。

(相关命令:git reset、git log、git reflog,要看文档的话用--help。)

这是一次愚蠢的行为之后的总结……避免我之后忘记了解决方法【逃

get reset --hard是一个非常危险的行为。

比如该项目,git log显示:

$ git log
commit cc53a1925fb7895ad88d155a43f3012249615919 (HEAD -> master)
Author: ***
Date:   Mon Mar 12 16:47:00 2018 +0800

    version 1

commit 1ca078c22c4b7d5c79214069cb1be8d4122dbe7e
Author: ***
Date:   Mon Mar 12 16:46:46 2018 +0800

    version 0

此时执行git reset --hard HEAD^(回退为HEAD前一次提交):

$ git reset --hard HEAD^
HEAD is now at 1ca078c version 0

此时再次查看git log,发现version 1提交没有了。git log只查看当前提交的祖先。

$ git log
commit 1ca078c22c4b7d5c79214069cb1be8d4122dbe7e (HEAD -> master)
Author: ***
Date:   Mon Mar 12 16:46:46 2018 +0800

    version 0

此时可以git reflog,即查看每一次HEAD的变化,并reset到需要的commit。

$ git reflog
1ca078c (HEAD -> master) [email protected]{0}: reset: moving to HEAD^
cc53a19 [email protected]{1}: commit: version 1
1ca078c (HEAD -> master) [email protected]{2}: commit (initial): version 0

$ git reset cc53a19 --hard
HEAD is now at cc53a19 version 1

或者用git log -g(即--walk-reflogs)查看每一次HEAD的变化的日志,并进行reset。(代码略

以上是关于错误的git reset操作之后的补救措施的主要内容,如果未能解决你的问题,请参考以下文章

当redis执行flush操作后的补救措施

安卓手机的浏览器中出现的远程命令执行漏洞相应的补救措施有

/etc/fstab文件损坏的补救措施

多线程线程安全

数据库备份与恢复--05---数据库迁移删库后补救措施

R语言构建回归模型并进行模型诊断diagnostics(正态性线性独立性方差齐性)如果模型构建的初始假设不满足常使用的补救措施(Corrective measures)