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心情而定。。。

  • 相关阅读:
    BF3,MW3,CF,高端?亲民
    关于#ifdef __cplusplus extern
    lua源码阅读顺序
    (ZZ)如何实现游戏主循环(Game Loop)的详细解析
    D3D学习总结基础篇(二)从古墓丽影的画面设置了解基础概念
    比较两个json是否相等
    IPAD点滴 WebIM
    Remoting与Font对象 WebIM
    使用android隐藏api实现亮度调节
    symbian的HTTP引擎中对302、301事件的处理
  • 原文地址:https://www.cnblogs.com/yltleeral/p/4775549.html
Copyright © 2011-2022 走看看