Git的4个阶段的撤销更改

本文转发自:https://segmentfault.com/a/1190000011969554

虽然git 诞生距今已有12 年之久,网上各种关于git

的介绍文章数不胜数,但是依然有很多人(包括我自己在内)对于它的功能不能完全掌握。以下的介绍只是基于我个人对于git

的理解,并且可能生编硬造了一些不完全符合git 说法的词语。目的只是为了让git

通俗化,使初学者也能大概了解如何快速上手git。同时,下面所有讨论,我们都假设只使用一个分支,也就是主分支master

的情况,虽然这种作法并不符合git

规范,但是现实情况中绝大部分用户是直分支上进行工作的,所以在这里我们不去弓|入更加复杂的各种分支的情况,也不涉接在master及标签tag

的操作,只讲在最简单的主分支上如何回退。

基本概念

3个步骤

正常情况下,我们的工作流就是3 个步骤,对应上图中的3 个箭头线:

4个区

5种状态

检查修改

了解了基本概念之后,我们来谈一谈犯错误之后如何撤销的问题。首先,我们要了解如何检查这3个步骤当中每一个步骤修改了什么,然后才好判断有没有修改成功。检查修改的二级命令都相同,都是diff,只是参数有所不同。

已修改,未暂存

我们在文件开头的第2行胡乱加了4个数字1234,存盘,这时文件进入了已修改状态,但是还没有进入暂存区,我们运行git diff,结果如下:

git diff的结果告诉我们哪些文件已经做了哪些修改。

已暂存,未提交

已提交,未推送

撤销修改

已暂存,未提交

已提交,未推送

总结

以上 4 种状态的撤销我们都用到了同一个命令 git reset --hard ,前 2 种状态的用法甚至完全一样,所以只要掌握了 git reset --hard 这个命令的用法,从此你再也不用担心提交错误了。

更多参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容