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 时光穿梭鸡 撤销修改的更多相关文章
- Git 时光穿梭鸡 管理修改
Git跟踪并管理的是修改,而非文件. 什么是修改? 比如你新增了一行,这就是一个修改, 删除了一行,也是一个修改, 更改了某些字符,也是一个修改, 删了一些又加了一些,也是一个修改, 甚至创建一个新文 ...
- Git 时光穿梭鸡 删除文件 以及批量删除文件
先添加一个新文件test.txt到Git并且提交: 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了 $ rm test.txt 这个时候,Git知道你删除了文件, 因此,工作 ...
- Git时光机穿梭之撤销修改
自然,你是不会犯错的.你在readme.txt中添加了一行: $ cat readme.txt Git is a distributed version control system. Git is ...
- git命令(10):git 常用操作,撤销修改(2)
一. 创建与合并分支 1. 从master分支创建dev分支并切换到dev分支: git checkout master git checkout -b dev 其中,git checkout -b ...
- Git入门 时光穿梭鸡 版本回退 工作区 暂存区
分布式集中式 CVS及SVN都是集中式的版本控制系统 , 而Git是分布式版本控制系统 集中式版本控制系统,版本库是集中存放在中央服务器的, 而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得 ...
- Git版本回退和撤销修改的区别
在阅读廖雪峰git教程时,对版本回退和暂存区撤销修改没太看懂,所以自己测试了一下. 版本回退: git reset --hard HEAD 这个命令用于版本回退,就是将已提交的版本覆盖本地工作区的内容 ...
- [原]git的使用(四)---撤销修改
8.撤销修改 $ cat readme.txt Git is a distributed version control system. Git is free software distribute ...
- Git版本回退和撤销修改
版本回退: 在实际工作中,我们会不断对文件进行修改,然后不断提交修改到版本库里,一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失. ...
- Git 基础教程 之 撤销修改
Git跟踪并管理的是修改,而非文件.每次修改,如果不用git add到暂存区,那就不会加入到commit中, 要么全部改完后,再add → commit :要么改一点,就add → commit. 撤 ...
随机推荐
- 【题解】[JSOI2008]最大数
[题解][P1198 JSOI2008]最大数 正难则反,意想不到. 这道题是动态让你维护一个数列,已经在数列里面的数据不做改变,每次在最后加上一个数,强制在线. 既然正着做很难,考虑如果时间倒流,不 ...
- Java实参和形参与传值和传引用
实参和形参的定义: 形参出现函数定义中,在整个函数体内都可以使用,离开函数则不能使用. 实参出现在主函数中,进入被调函数后,实参变量也不能使用. 形参和实参的功能是做数据传送.发生函数调用时,主调函数 ...
- css集合--表示有未读消息小红点的解决
只需要一个<i>标签,放在需要的文本后面即可 ex:<span>待解决问题<i></i><span> i{ display:block; b ...
- Web框架和Django基础
核心知识点 1.web应用类似于一个socket客户端,用来接收请求 2.HTTP:规定了客户端和服务器之间的通信格式. 3.一个HTTP包含两部分,header和body,body是可选,\r\n分 ...
- CSS3 3D下拉折叠菜单
在线演示 本地下载
- js作用域总结
一.在ES5中,js 的作用域 js作用域,只有全局作用域与函数作用域,没有块级作用域. 1.全局作用域 var a = 10; function aaa() {alert(a) } function ...
- 在datax之前版本中添加filewriter并创建job时出现问题
问题描述:
- python的try...except
try/except与其他语言相同,在python中,try/except语句主要是用于throw程序正常执行过程中出现的异常,如语法错(python作为脚本语言没有编译的环节,在执行过程中对语法进行 ...
- javascript(9)
var a=[890,10]; window.alert(a.valueOf()); window.alert(a); //个人觉得,输出a.valueOf()和a没有什么区别 //使用valueOf ...
- python基础-正则1
什么是正则表达式? 正则表达式是一种小型的\高度专业化的变成语言,主要用于字符串处理 正则表达式是一种通用语言,在python中通过re模块实现,import re 工具:在线正则表达式测试 http ...