• Git 时光穿梭鸡 撤销修改


    工作区内容修改了, 但是并未add到暂存区, 想 回退到上一个版本

    readme.txt中添加了一行:

    Git is a distributed version control system.
    Git is free software distributed under the GPL.
    Git has a mutable index called stage.
    Git tracks changes of files.
    My stupid boss still prefers SVN.

    纠正这次修改。你可以删掉最后一行,手动把文件恢复到上一个版本的状态。

    如果不手动删除进行恢复

        使用git status 查看状态

        

         你可以发现,Git会告诉你,git checkout -- file可以丢弃工作区的修改

    git checkout .    所有在工作区的修改全部撤销(别忘了一点, 代表所有文件)

    git checkout -- readme.txt  readme.txt文件在工作区的修改全部撤销

     >>>>这里有两种情况:

       一种是readme.txt修改后还没有被放到暂存区

        现在,使用 git checkout 或   git checkout -- readme.txt  撤销修改就回到和版本库一模一样的状态;

       一种是readme.txt已经添加到暂存区后又作了修改

        现在,使用 git checkout .   或   git checkout -- readme.txt  撤销修改就回到添加到暂存区后的状态。

      刚才添加

        My stupid boss still prefers SVN.

      后并未add添加到暂存区, 所以撤销修改后会回到和版本库一摸一样的状态

       

    工作区内容修改了, 并且已经add到暂存区了, 想回退到上一个版本

     修改:

    Git is a distributed version control system.
    Git is free software distributed under the GPL.
    Git has a mutable index called stage.
    Git tracks changes of files.
    My stupid boss still prefers SVN.

    add到暂存区

    庆幸的是,在commit之前,你发现了这个问题。

    git status查看一下,修改只是添加到了暂存区,还没有提交:

     

    Git同样告诉我们,用命令git reset HEAD <file>

    >>>>>>>>可以   把暂存区的修改撤销掉(unstage)并且 重新放回工作区:

    git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。

    当我们用HEAD时,表示最新的版本。

    git reset HEAD readme.txt   回退单个文件

    git reset HEAD  全部回退

     再用git status查看一下,现在暂存区是干净的,工作区有修改:

     

     再使用    git checkout .    或   git checkout -- readme.txt   丢弃工作区的修改

     

     现在工作区同版本库一致了

    现在,假设你不但改错了东西,还从暂存区提交到了版本库,怎么办呢?

    Git入门 时光穿梭鸡 版本回退 工作区 暂存区    参考其中的版本回退内容

     

  • 相关阅读:
    三十六、主从复制监控
    三十五、主从复制原理
    IO模型
    格式化时间
    计算当前日期星座
    牛顿迭代法
    矩阵变换
    ffmpeg使用
    数独自动求解
    回溯迷宫找终点
  • 原文地址:https://www.cnblogs.com/mkl7/p/10848396.html
Copyright © 2020-2023  润新知