zoukankan      html  css  js  c++  java
  • how to restore 'git reset –hard' operations

    how to restore 'git reset –hard' operations

    1 emulate git reset –hard

     

    1.1 generate two commits

    $ mkdir tt; cd tt
    $ git init
    $ touch foo.txt
    $ git add foo.txt
    $ git commit -m "init"
    $ echo "data" >> foo.txt
    $ git commit -a -m "data"
    

    1.2 check the commits

    tt$ git log --pretty=oneline 
    48152f95f5e993ab167a02e76b43fa998c40b750 data
    a8daade8ffd7a4ccf23b145c7a380391068e8ed2 init
    

    1.3 reset –hard to the first commit

    tt$ git reset --hard a8daade
    HEAD is now at a8daade init
    
    tt$ git log --pretty=oneline 
    a8daade8ffd7a4ccf23b145c7a380391068e8ed2 init
    

    2 restore to the second commit (lost after 'git reset –hard')

     

    2.1 check reflog

    reflog will note down all HEAD history. The 'reset', 'checkout' operations will be noted in reflog.

    tt$ git reflog 
    a8daade HEAD@{0}: reset: moving to a8daade
    48152f9 HEAD@{1}: commit: data
    a8daade HEAD@{2}: commit (initial): init
    

    2.2 restore

    tt$ git reset --hard 48152f9
    HEAD is now at 48152f9 data
    
    tt$ git log --pretty=oneline 
    48152f95f5e993ab167a02e76b43fa998c40b750 data
    a8daade8ffd7a4ccf23b145c7a380391068e8ed2 init
    
     
  • 相关阅读:
    centos7 修改中文字符集
    Can't locate Data/Dumper.pm in perl5的处理
    MySQL crash-safe replication(3): MySQL的Crash Safe和Binlog的关系
    MySQL crash-safe replication(2):
    MySQL crash-safe replication(1)
    《Linux性能调优指南 》全书
    Oracle Database 12c Preinstall Steps for Oracle Linux Simplified
    MySQL的binlog2sql闪回
    Python pip 安装与使用
    LSM树由来、设计思想以及应用到HBase的索引
  • 原文地址:https://www.cnblogs.com/aqing1987/p/5387039.html
Copyright © 2011-2022 走看看