其他分享
首页 > 其他分享> > Git 时光穿梭鸡 撤销修改

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入门 时光穿梭鸡 版本回退 工作区 暂存区    参考其中的版本回退内容

 

 

标签:Git,时光,修改,穿梭,暂存区,readme,git,txt
来源: https://www.cnblogs.com/mkl7/p/10848396.html