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>
  • 相关阅读:
    Java:类加载器(ClassLoader)
    Java 并发:Executor
    Java 并发:线程中断-interrupt
    UNIX IPC: POSIX 消息队列 与 信号
    Java与C++区别:重载(Overloading)
    UNIX IPC: POSIX 消息队列
    PAT 1078. Hashing
    PAT 1032. Sharing
    回顾经典问题算法:LIS, LCS-(DP类别)
    url编码模块
  • 原文地址:https://www.cnblogs.com/T8888/p/12124088.html
Copyright © 2011-2022 走看看