zoukankan      html  css  js  c++  java
  • git的几种撤销提交方式

    Git的几种状态

    未修改
           原始内容
    已修改    ↓   
           工 作 区
    已暂存    ↓    git add
           暂 存 区
    已提交    ↓    git commit
           本地仓库
    已推送    ↓    git push
           远程仓库
    

    注意:下面所有命令每一个代码段是相互独立的,为了解决一个问题,请不要使用多个代码段。所有命令均经过本人测试,由于测试环境是简单的Git仓库没有过多的数据,可能在复杂环境回出现错误。如发现问题请直接评论区指出。请仔细分析使用情况,丢失数据与本人无关。

    已修改 未暂存

    已经修改了文件,还未进行git add
    即工作区的内容不想要了。

    恢复方法

    使用以下任意命令

    git checkout .
    
    git checkout -- <FILENAME>
    
    git reset --hard
    

    已暂存 未提交

    已经进行了git add,还未进行git commit
    即暂存区的内容不想要了

    恢复方法

    使用以下任意命令

    git reset
    git checkout .
    
    git reset --hard
    
    git reset HEAD
    
    git reset HEAD -- <FILENAME>
    

    已提交 未推送

    已经进行了git commit,还未进行git push

    恢复方法

    使用远程仓库覆盖本地仓库

    git reset --hard origin/master
    

    已推送

    已经进行了git push

    恢复方法

    回滚本地仓库,强制推送覆盖远程仓库

    git reset --hard HEAD^
    git push -f
    

    其他情况

    丢弃某个节点后的全部提交

    即HEAD指针指向该节点

    git reset --hard <COMMITID>
  • 相关阅读:
    2.1.7出现异常,锁自动释放
    2.1.5脏读
    2.1.4synchronized方法与锁对象
    2.1.3多个对象多个锁
    2.1.2实例变量非线程安全
    2.1.1方法内的变量为线程安全
    Linux内核开发
    fl2440 platform总线led字符设备驱动
    fl2440字符设备led驱动
    cdev结构体及其相关函数
  • 原文地址:https://www.cnblogs.com/wangking/p/14142689.html
Copyright © 2011-2022 走看看