美文网首页
reset vs revert

reset vs revert

作者: 陈大事_code | 来源:发表于2019-05-16 14:15 被阅读0次

    场景:假设存在(A-B-C-D) 四个commit

    一. reset

    作用:直接删除B、C、D将当前HEAD指向A。

    注意点:reset之后,删掉的版本就没有了(不推荐使用),除非必要。

    步骤:

    git log (查看所有版本号,找到A的版本号)
    
    git reset --hard   【A的版本号】
    
    git push -f (由于回退,当前版本比远程是要旧的,所以需要强制覆盖远程)
    

    二. revert

    1. revert多条commit

    场景:回退A版本commit

    作用::创建一个与目标版本一致的版本,变成 (A-B-C-D-A')

    步骤:

    git revert -n 【A的版本号】   
    
    git commit -m ‘备注’
    
    git push
    

    上面的-n,即 --no-commit,代表不直接提交,本质上的revert是一条条进行回滚,那么如果存在多个需要revert的commit,会自动生成多条revert的commit,不太美观。-n即为全部放置在暂存区,一次性commit

    2. revert多条commit

    场景:A/B/C/D四个版本,需要回退B/C

    git revert -n 【A的版本号】..【C的版本号】
    
    git commit -m ‘备注’
    
    git push
    

    多个版本回退,是”前开后闭“,所以左侧为A的版本号

    相关文章

      网友评论

          本文标题:reset vs revert

          本文链接:https://www.haomeiwen.com/subject/txkiaqtx.html