zoukankan      html  css  js  c++  java
  • Git usage reset

    使用场景

    将branch版本reset到指定的commit,这是一个大杀器,慎用。一般说来,只能对付自己,不可对付别人.

    如果你在自己的私有branch上做那一个bug fix,commit那,假设是commit_A,测一测发现还是不行,这个时候,你就可以选择reset到倒数第二个commit,假设是 commit_B,commit_A就会永远从git object里面消失,你使用git log也看不见它,但是此时commit_A中你修改过的文件,可能会处在modified状态,涵盖你错误的commit_A里面的修改,也同时使用>>>>来标示,需要你人肉重新修改,或者使用git checkout沿用commit_B版本,验证后重新提交,形成一个新的commit_C。

    使用方法

    $ git reset 332738ae8b206d8ef7b8392a1783b7fcc52223f8
    Unstaged changes after reset:
    M       main.cc
    

    恢复被reset delete掉的commit

    人就是这么纠结,commit,后悔,reset,又后悔,恩,还好,这里有后悔药售,但是后悔药有期限</br> 当你想恢复一个被reset的commit的时候,本质上这和你要reset到一个其它的commit并没有区别

    $git reset --hard commit_has_been_deleted_by_reset
    

    既然都被delete那,怎么去找到commit id呢,有些脑筋活泛的家伙,立刻会问,答案如下

    $ git reflog
    1a75c1d... HEAD@{0}: reset --hard HEAD^: updating HEAD
    f6e5064... HEAD@{1}: commit: added file2
    

    假设你是因为后悔最近一次reset,干掉那新加的文件file2,那么你应该恢复到file2所在commit

    $git reset --hard f6e5064
    

    前面说到那,这份后悔是有个期限的,期限有多长?git 做垃圾回收的时间那么长,大概是2-3星期,个把月,视git心情而定。。。

  • 相关阅读:
    可变形参 Day07
    流程控制 Day06
    基本数据类型的值传递 和引用数据类型的引用传递 Day06
    一维数组的求平均成绩 Day06
    一维数组的初始化及遍历 Day06
    字符串分割+二维数组 Day15练习
    Java对数组和列表的排序1.8新特性
    Java Stream
    JPA学习(六、JPA_JPQL)
    JPA学习(五、JPA_二级缓存)
  • 原文地址:https://www.cnblogs.com/yltleeral/p/4775549.html
Copyright © 2011-2022 走看看