本文转发自: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 这个命令的用法,从此你再也不用担心提交错误了。
更多参考
网友评论