美文网首页
GIT撤销修改总结

GIT撤销修改总结

作者: 追梦de蜗牛 | 来源:发表于2018-12-27 10:41 被阅读0次

    GIT基础知识

    主要名词如下:

    • stage: 暂存区

    • master: 主分支

    • 版本库: git自动生成的.git文件夹

    • 工作区:编写和存放代码的区域

    • HEAD:指针,每个分支都有一个HEAD,并指向各自的分支节点

    //本地的操作

    • add:代码从工作区推送到暂存区。

    • commit:代码从暂存区推送到主分支。

    • push:代码从本地主分支推送到远程分支。

    本次使用的是一个Android项目来说明的,下面是版本库和工作区。

    image

    从廖大神处拿来一张GIT的说明图基本结构。

    image

    撤销操作

    ** 1 撤销工作区的修改(未使用git add .指令)**:

    让指定文件回到最近一次git commit或git add时的状态,若--后不加任何东西,将撤销工作区的所有更改。注意:新建的文件此时对git而言是未知的,直接手动删除即可。

    git checkout -- <file>
    
    //或者使用下面的指令来放弃所有的更改
    
    git checkout .
    
    image.gif

    ** 2 撤销暂存区的修改(已add但未commit时****):**

    分两步: 第一步,把暂存区的修改撤销掉(unstage),重新放回工作区;第二步,撤销工作区的修改。若不指定文件,则将撤销所有的更改。

    //1 先从commit状态变成add后的状态(也可通过git reset HEAD . 指令来处理所有文件)
    git reset HEAD <file>
    
    //2 再从add后的状态恢复到未进行更改时的状态
    git checkout -- <file>
    
    image.gif

    3 撤销本地仓库的修改(已commit但未push时****):

    分两种情况: 情况一,退回到commit之前的那一个版本;情况二,退回到指定(commitid)版本。注意:退回到任意版本时只需要写commitid的前几位即可。所谓的退回其实就是切换,就是git将指针直接切换到commitid处。

    //情况一:退回到之前的那一个版本
    git reset --hard HEAD^
    
    //情况二:退回到任意版本,版本commitid为 a24s0...
    git reset --hard a24s0
    
    
    image.gif

    查看commitid可通过如下指令:git log

    image

    ----------------------分----------------------割-----------------------线--------------------

    平时常用, 特此记录,望勿忘。

    相关文章

      网友评论

          本文标题:GIT撤销修改总结

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