(相关命令: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 commit 1ca078c22c4b7d5c79214069cb1be8d4122dbe7e
Author: ***
Date: Mon Mar 12 16:46:46 2018 +0800 version

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

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

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

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

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

$ git reflog
1ca078c (HEAD -> master) HEAD@{}: reset: moving to HEAD^
cc53a19 HEAD@{}: commit: version
1ca078c (HEAD -> master) HEAD@{}: commit (initial): version $ git reset cc53a19 --hard
HEAD is now at cc53a19 version

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

错误的git reset操作之后的补救措施的更多相关文章

  1. git学习(六) git reset操作

    git reset 操作 git reset git reset HEAD 文件名 移除不必要的添加到暂存区的文件 git reset HEAD^ 或者 commitid 去掉上一次的提交 git r ...

  2. git学习(十) idea git reset 操作

    git reset 是回滚操作,在 idea 中使用如下: Reset Type 有三种: Mixed 默认方式,只保留源码,回退 commit 和 index 信息 Soft 回退到某个版本,只回退 ...

  3. <转载> 撤销 git reset 操作

    https://blog.csdn.net/mhlghy/article/details/84786497

  4. git reset --hard 操作后的数据恢复

    在进行正文之前先简单介绍下git reset 命令 git reset git reset 命令用于改变当前的仓库状态,简单的场景用例:假设一次修改了两个文件,然而需要对这两个文件分别进行两次提交,在 ...

  5. 代码回滚:git reset、git checkout和git revert区别和联系

    git reset.git checkout和git revert是你的Git工具箱中最有用的一些命令.它们都用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于提交,还可以作用于特定文件. 因为 ...

  6. git文件操作

    git下载地址: https://git-scm.com/download mac 直接使用brew下载brew install git 1Git一般工作流程: 1.在工作目录创建版本库 2.在工作目 ...

  7. git push 错误,回滚 push操作

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 0.记一次使用git push后,覆盖了同事代码的糗事 前言: ​ 都在WebStorm中操作,Idea或者PyCharm同理 ​ 为了高度还原尴尬 ...

  8. Git撤销&回滚操作(git reset 和 get revert)

    转自:https://blog.csdn.net/asoar/article/details/84111841 git的工作流 工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 ...

  9. 撤销git reset soft head操作

    一不小心在eclipse的git库中执行了Reset Soft(HEAD ONLY)操作,不料界面中竟然没有找到撤销方法(于是心中五味俱全,经过一番折腾,无果还是回归Git本身),最终通过命令行,很快 ...

随机推荐

  1. NOI Linux学习

    打开终端: cd (目录名)//进入该目录的终端 cd ..//退出该目录,返回上一层. 修改用户名 密码: 修改密码: passwd//直接修改root密码 passwd (用户名)//修改该用户的 ...

  2. shell (3) 磁盘挂载

    #!/bin/sh disk=`df -h |grep /dev/sd|awk '{print $1}'` echo $disk for d in $disk do echo $d uuid=`blk ...

  3. python namedtuple命名元组

    from collections import namedtuple Animal=namedtuple('Animal','name age type') perry=Animal(name='pe ...

  4. mysql忘记root密码处理

    由于测试环境root账户不经常使用,等到需要用到时,很难记起它的密码.特在此记录下忘记密码后的操作 1. 先停止mysql服务 2. 运行 mysqld -nt skip-grant-tables 不 ...

  5. ubuntu 16.04 屏幕截图

    shift+prtsc   快捷键截取指定区域的图片 类似qq截图

  6. Testlink 机器重启后Access denied for user 'admin '@'localhost' (using password: YES)解决

    问题表现: 装完Testlink,重启系统后,在testlink权限未分配会出现如下提示: 1045 - Access denied for user 'Testlink '@'localhost' ...

  7. kafka producer自定义partitioner和consumer多线程

    为了更好的实现负载均衡和消息的顺序性,Kafka Producer可以通过分发策略发送给指定的Partition.Kafka Java客户端有默认的Partitioner,平均的向目标topic的各个 ...

  8. 基于CommonKADS方法论实现知识库系统

    说明:本文是Knowledge-based systems with thecommonKADS method文章的翻译. 一.知识库系统的背景 1. 什么是知识库系统(KBS) 知识库系统是人工智能 ...

  9. C++11并发编程:多线程std::thread

    一:概述 C++11引入了thread类,大大降低了多线程使用的复杂度,原先使用多线程只能用系统的API,无法解决跨平台问题,一套代码平台移植,对应多线程代码也必须要修改.现在在C++11中只需使用语 ...

  10. 【转】C#中的委托,匿名方法和Lambda表达式

    简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个Fir ...