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

  • 相关阅读:
    深度学习(十六) ReLU为什么比Sigmoid效果好
    逻辑回归和线性回归区别
    KNN理解
    词向量总结
    HTTP TCP/IP Socket
    AutoMapper控件
    Oracle数据库调优总结
    深度学习(十五) TextCNN理解
    从几张图来看看越来越难做的前端
    ES6学习笔记
  • 原文地址:https://www.cnblogs.com/yltleeral/p/4775549.html
Copyright © 2020-2023  润新知