(相关命令: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. webform的导出

    呃 怎么说呢  我这个是公司大佬写好的  我直接调用  和以前写的百度上面的都不大一样 感觉很Nice 插个眼 说不定以后还得回来参考参考 具体是这样的 你先写好一个模板 就是你要导出的数据应该在Ex ...

  2. 获取LAMP与LNMP的编译参数

    1.查看nginx的编译参数[root@LNMP ~]# /application/nginx/sbin/nginx -Vnginx version: nginx/1.6.3built by gcc ...

  3. Python中使用PyMySQL

    1.项目中使用PyMySQL一些案例 建立一个config.py 用于存储配置文件 2.测试 ##获取数据 from config import ctf '''connection对象支持的方法 cu ...

  4. Gson使用

    Gson提供了fromJson()方法来实现从Json相关对象到Java实体的方法. 在日常应用中,我们一般都会碰到两种情况,转成单一实体对象和转换成对象列表或者其他结构. 先来看第一种: 比如jso ...

  5. 基于CIDR的IP分组转发算法

       话不多说,直接上运行截图         #include<iostream> #include<vector> using namespace std; struct ...

  6. gVim安装vim-template插件后提示Undefined variable vim_template_subtype/Press ENTER or type command to continue

    Win7 64位 gVim:version 8.1.1234 vim-template:github链接 安装方式: 直接下载master的zip压缩包,解压后放入本地gVim安装目录的plugin, ...

  7. mac下 mysql 插入中文乱码解决

    搞了好几个小时,终于搞定了 乱码根本原因还是编码方式不同造成的,只要编码方式统一就没问题 1. 进入 mysql 命令行, 用 show variables like 'character_set_% ...

  8. Android JPush极光推送应用

    JPush纠结了5-6个小时,一直报下面的错误,纠结! [AndroidUtil] AndroidManifest.xml missing required intent filter for Pus ...

  9. 限流(三)Redis + lua分布式限流

    一.简介 1)分布式限流 如果是单实例项目,我们使用Guava这样的轻便又高性能的堆缓存来处理限流.但是当项目发展为多实例了以后呢?这时候我们就需要采用分布式限流的方式,分布式限流可以以redis + ...

  10. Java API 之 Annotation功能

    JDK1.5开始增加了Annotation功能,该功能可用于: 1.类: 2.构造方法: 3.成员变量: 4.方法 5.参数 等的声明: 该功能并不影响程序的运行,但是会对编译器警告等辅助工具产生影响 ...