时光穿梭机(撤销修改)
撤销修改
自然,你是不会犯错的。不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt
中添加了一行:
$ cat 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.
在你准备提交前,一杯咖啡起了作用,你猛然发现了stupid boss
可能会让你丢掉这个月的奖金!
既然错误发现得很及时,就可以很容易地纠正它。你可以删掉最后一行,手动把文件恢复到上一个版本的状态。如果用git status
查看一下:
$ git status
On branch master
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified: readme.txtno changes added to commit (use "git add" and/or "git commit -a")
你可以发现,Git会告诉你,git checkout -- file
可以丢弃工作区的修改:
$ git checkout -- readme.txt
命令git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
现在,看看readme.txt
的文件内容:
$ cat 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.
文件内容果然复原了。
git checkout -- file
命令中的--
很重要,没有--
,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkou
t命令。
现在假定是凌晨3点,你不但写了一些胡话,还git add
到暂存区了:
$ cat 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 add readme.txt
庆幸的是,在commit
之前,你发现了这个问题。用git status
查看一下,修改只是添加到了暂存区,还没有提交:
$ git status
On branch master
Changes to be committed:(use "git reset HEAD <file>..." to unstage)modified: readme.txt
Git同样告诉我们,用命令git reset HEAD <file>
可以把暂存区的修改撤销掉(unstage),重新放回工作区:
$ git reset HEAD readme.txt
Unstaged changes after reset:
M readme.txt
git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD
时,表示最新的版本。
再用git status
查看一下,现在暂存区是干净的,工作区有修改:
$ git status
On branch master
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified: readme.txt
还记得如何丢弃工作区的修改吗?
$ git checkout -- readme.txt`在这里插入代码片`$ git status
On branch master
nothing to commit, working tree clean
整个世界终于清静了!
现在,假设你不但改错了东西,还从暂存区提交到了版本库,怎么办呢?还记得版本回退一节吗?可以回退到上一个版本。不过,这是有条件的,就是你还没有把自己的本地版本库推送到远程。还记得Git是分布式版本控制系统吗?我们后面会讲到远程版本库,一旦你把stupid boss
提交推送到远程版本库,你就真的惨了……
小结
又到了小结时间。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。`
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
时光穿梭机(撤销修改)相关推荐
- Git 进阶 —— 时光穿梭机
主要内容 版本回退 工作区和暂存区 管理修改 撤销修改 删除文件 一.两条基本查看命名 查看状态命令:git status 查看修改内容命令:git diff 实例 思路:修改readme.txt文本 ...
- git学习之时光穿梭机
"x"修改readme.txt文件,改成如下内容: Git is a distributed version control system. Git is free softwar ...
- git时光穿梭机总结
git时光穿梭机总结 版本回退 工作区和暂存区 管理修改 撤销修改 删除文件 版本回退 git log //查看历史版本,版本库状态 git log --pretty=oneline //简化显示 像 ...
- git与github——1,简介、安装及设置账号、创建版本库及提交文件、常用命令汇总、git的时光穿梭机
目录 一.git是什么? 1,git与github 2,分布式与集中式 二.安装.设置账号.设置ssh 1.安装.设置账号 2,设置ssh 三.创建版本库及提交文件 1,创建版本库 2,添加文件到版本 ...
- 时光穿梭机特效如何制作?建议试试这个时光机穿梭工具
时光机特效(Time Machine Effect)是一种通过编辑软件创造的图像效果,它可以让您的照片看起来像是从过去或未来穿越而来的.这种效果是通过改变图像的颜色.对比度.曝光和色调等参数来实现的. ...
- 2:哆来A梦的时光穿梭机
哆来A梦的时光穿梭机 修改readme.txt文件如下,提交到Git版本库[root@Web_server learngit]# cat readme.txt Git is a distribute ...
- Git基础之(四)——时光穿梭机——版本回退
现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...
- 【Git】Git 本地的撤销修改和删除操作
一:撤销操作 比如我现在在readme.txt文件里面增加一行 内容为555555555555,我们先通过命令查看如下: 在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复 ...
- git 撤销修改以及删除文件(亲测最后一个删除后还原)
撤销修改 1.如果当你修改了代码,然后又发现修改错误以后,想撤销前面的操作的时候该怎么办呢? 既然错误发现得很及时,就可以很容易地纠正它.你可以删掉最后一行,手动把文件恢复到上一个版本的状态.如果用 ...
最新文章
- 程序员必备网站之一:No Design
- 从零搭建React全家桶框架教程
- NSString之Format
- 第一个问题就难倒我了!
- 微服务网关 Kong 科普
- PHP各种数据类型转换
- 开课吧课程:什么是TreeSet类
- mysql双机数据热备份_教你怎么样实现MySQL数据库双机热备份
- 关于Eclipse优化记录
- grep指令与ps指令的详细使用说明
- java重新温习基础笔记
- c盘减肥//请在阅读本文之前查看你C盘的可用空间
- Fluentd (td-agent) 日志处理
- Relative Orientation 与fundamental essential matrix
- 4月8日链家考试感想
- 5G到底什么时候来,它究竟能给我们带来什么?
- Ubuntu下使用opencv完成图像程序编程操作
- 10.5国庆作业(IIC实验)
- 6waves VP张伟:洞悉SLG等品类赛道,直击日本市场的趋势与机遇
- PaaS平台升级NFS报错排除
热门文章
- Syste类 及常用方法
- 关于CClientDC与CPAINTDC,以及GetDC与GetWindowDC。
- Speedoffice(excel)如何利用SUMIF函数求和
- 工程材料学习2——第一章 材料的结构与性能特点
- 使用git将远程仓库和本地仓库关联
- Flex在线文档阅读器::pdf、doc、docx、xls、xlsx、ppt、pptx、htm、txt、rtf、epub、csv、xdoc等
- 美苏太空竞赛历年卫星火箭发射以及历史事件介绍
- 小程序流量主怎么赚钱?小程序流量主怎么变现?
- msconfig提示系统配置无法保存原始启动配置以便以后还原的解决方法
- python账号怎么注销_登录后如何注销