• 错误的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) HEAD@{0}: reset: moving to HEAD^
    cc53a19 HEAD@{1}: commit: version 1
    1ca078c (HEAD -> master) HEAD@{2}: commit (initial): version 0
    
    $ git reset cc53a19 --hard
    HEAD is now at cc53a19 version 1

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

  • 相关阅读:
    JavaScript经典语录
    ERP部门的添加(十一)
    List<T>Contains, Exists, Any之间的优缺点对比
    LINQ学习之旅(六)
    ERP仓库管理系统查询(十)
    MVC中Asp.Net管道(二)
    appfog 添加数据库支持
    appfog 使用
    java.util.ResourceBundle 读取国际化资源或配置文件
    Java 如何中断和恢复线程的执行
  • 原文地址:https://www.cnblogs.com/jennawu/p/8550298.html
Copyright © 2020-2023  润新知