热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Git时光穿梭鸡撤销修改

  工作区内容修改了,但是并未add到暂存区,想回退到上一个版本 在readme.txt中添加了一行:Gitisadistributedversioncontrolsystem.G

 

 


工作区内容修改了, 但是并未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

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

 

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

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

 

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

git reset HEAD  全部回退

 

 

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

 

 

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

 

 

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

 

 

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

 

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

 

 


推荐阅读
author-avatar
mobiledu2502939211
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有