Git之撤销修改

自然,你是不会犯错的。不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行

这里写图片描述

在你准备提交前,一杯咖啡起了作用,你猛然发现了“stupid boss”可能会让你丢掉这个月的奖金!

既然错误发现得很及时,就可以很容易地纠正它。你可以删掉最后一行,手动把文件恢复到上一个版本的状态。如果用git status查看一下

这里写图片描述

你可以发现”git checkout – file”可以丢弃工作区的修改

这里写图片描述

命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

- 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态(也就是因为还没add,所以会回到上一次commit的状态)

-一种是readme.txt在被添加到暂存区之后作了修改,现在撤销修改就会回到添加到暂存区后的状态(已经被add,所以会回到上一次add的状态)

总之,就是让这个文件回到最近一次git commit或git add时的状态。

现在,看看readme.txt的文件内容

这里写图片描述

文件内容果然复原了

git checkout – file命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令

现在假定是凌晨3点,你不但写了一些胡话,还git add到暂存区了

这里写图片描述

庆幸的是,在commit之前,你发现了这个问题。用git status查看一下,修改只是添加到了暂存区,还没有提交

这里写图片描述

Git同样告诉我们,用命令“git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

这里写图片描述

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本

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

这里写图片描述

还记得如何丢弃工作区的修改吗?

这里写图片描述

整个世界终于清静了!

总结:

- 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file

- 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作

- 已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

glibc与MSVC CRT(转载)

glibc与MSVC CRT 运行库是平台相关的,因为它与操作系统结合得非常紧密。C语言的运行库从某种程度上来讲是C语言的程序和不同操作系统平台之间的抽象层,它将不同的操作系统API抽象成相同的库函数。比如我们可以在不同的操作系统平台下使用fread来读取文件…

asp.net下载的三种方式

Codeprotected void Button1_Click(object sender, EventArgs e) { /* 微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite 下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。 …

输出一个文件的最后n行数据,如果文件总行数不足n行,则显示全部数据

C程序,功能如题,代码如下: /*功能:输出一个文件的最后n行数据,如果文件总行数不足n行,则显示全部数据基本思路:产生一个长度为n的二维数组,将它作为一个循环队列来看待*/#include &…

javascript学习系列(13):数组中的concat方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说c…

如何阻止表单的默认提交事件

表单一点击提交按钮(submit)必然跳转页面,如果表单的action为空也会跳转到自己的页面,即效果为刷新当前页。 如下,可以看到一点击提交按钮,浏览器的刷新按钮闪了一下: 如果想要阻止表单的默认提交事件,有以…

c#winform使用WebBrowser 大全[超长文转载]

1、主要用途:使用户可以在窗体中导航网页。 2、注意:WebBrowser 控件会占用大量资源。使用完该控件后一定要调用 Dispose 方法,以便确保及时释放所有资源。必须在附加事件的同一线程上调用 Dispose 方法,该线程应始终是消息或用户…

nessuss中文使用手册

Nessus使用手册,主要介绍了在各系统下的安装方式,以及怎么使用。转载于:https://blog.51cto.com/infosec/95054

exit(),_exit()的区别

Linux的源码 #define __NR_exit 1 #define __NR__exit __NR_exit /* 摘自文件include/asm-i386/unistd.h*/ "__NR_"是在Linux的源码中为每个系统调用加上的前缀,请注意第一个exit前有2条下划线,第二个exit前只有1条下划线…

javascript学习系列(15):数组中的lastIndexOf方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…

iOS新版微信底部返回横条问题

之前没有怎么接触过微信开发,只是对H5比较熟。最近维护一个微信公众号的项目,遇到了iOS端返回键的坑。 描述一下: 从公众号打开页面后,底部有个返回的小横条,恰好也挡住了页面。这不行啊,得解决。 页面的高…

【ExtJS】FormPanel 布局(一)

准备工作,布置一个最简单的Form,共5个组件,都为textfield。 1 Ext.onReady(function(){2 Ext.create(Ext.form.Panel, {3 width: 500,4 title: Layout,5      renderTo : form,6 items: [{7 xt…

squid代理架构

代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式,使用代理上网可以节约紧缺的IP地址资源,而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的***。但是,如果想让互联网上的主机访问内部网的主机…

JS之四舍五入Fixed

用法:toFixed() 方法可把 Number 四舍五入为指定小数位数的数字 语法:NumberObject.toFixed(num) 参数:必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略…

输出上下对称的星型

输出星型&#xff0c;如&#xff1a; ******************************* C code: // 用法如&#xff1a;a.exe 7#include<stdio.h>int main(int argc, char *argv[]){if(argc < 2){printf("Usage: %s <n>\n", argv[0]);}else{int n atoi(argv[1]);i…

javascript学习系列(16):数组中的every方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…

JS之Number的toString方法

作用&#xff1a;toString() 方法可把一个 Number 对象转换为一个字符串&#xff0c;并返回结果 语法&#xff1a;NumberObject.toString(radix) 参数&#xff1a;可选。规定表示数字的基数&#xff0c;使 2 ~ 36 之间的整数。若省略该参数&#xff0c;则使用基数 10。但是要…

signal函数说明

c traps and pitfalls 对signal函数解释得非常详细。 <signal.h> 中 void ( *signal( int sig, void (* handler)( int ))) ( int ); int (*p)(); 这是一个函数指针, p所指向的函数是一个不带任何参数, 并且返回值为int的一个函数. int (*fun())(); 这个式子与上面式子…

javascript学习系列(17):数组中的find方法

最好的种树是十年前,其次是现在。歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的鼓励 1前言 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说…

RSA客户端js加密服务器C#解密(含源码)

本来用https感觉已经差不多了&#xff0c;客户非得要用户登录的时候再加密一次&#xff0c; 因为时间关系&#xff0c;原计划用C做客户端Activex加密暂被取消&#xff0c;花了两天时间在网上到处找&#xff0c;先作出了一个js的客户端加密先用着 思路 1.服务器每次随机生成公私…

vue mint-ui 弹出框

function toast(title){ //提示vm.$toast({message: title,position: middle,duration: 3000}); }效果如下 function toastSuccess(title){ //成功提示vm.$toast({message: title,iconClass: icon icon-success // (图标需自行准备&#xff09;}); } 效果如下 function lo…