SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

工作区内容修改了, 但是并未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入门 时光穿梭鸡 版本回退 工作区 暂存区 随笔 第1张

     你可以发现,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添加到暂存区, 所以撤销修改后会回到和版本库一摸一样的状态

   Git 时光穿梭鸡 撤销修改,Git入门 时光穿梭鸡 版本回退 工作区 暂存区 随笔 第2张

 

 

工作区内容修改了, 并且已经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到暂存区

Git 时光穿梭鸡 撤销修改,Git入门 时光穿梭鸡 版本回退 工作区 暂存区 随笔 第3张

 

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

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

 Git 时光穿梭鸡 撤销修改,Git入门 时光穿梭鸡 版本回退 工作区 暂存区 随笔 第4张

 

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

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

 

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

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

 

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

git reset HEAD  全部回退

Git 时光穿梭鸡 撤销修改,Git入门 时光穿梭鸡 版本回退 工作区 暂存区 随笔 第5张

 

 

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

 Git 时光穿梭鸡 撤销修改,Git入门 时光穿梭鸡 版本回退 工作区 暂存区 随笔 第6张

 

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

 Git 时光穿梭鸡 撤销修改,Git入门 时光穿梭鸡 版本回退 工作区 暂存区 随笔 第7张

 

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

 

 

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

 

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

 

Git 时光穿梭鸡 撤销修改,Git入门 时光穿梭鸡 版本回退 工作区 暂存区 随笔 第8张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄