在Git中想取消提交的几种常用方式

今天在Git中不小心提交了一个版本,想取消掉,但是又想保留修改内容,因为我打算新开一个分支,在另外一个分支提交的。

结果操作不当,版本回退了,可是修改的内容也没有保留!(还好我复制了一份,吓死我了)

所以我研究了一下Git 取消提交的几种方法,发现Git是支持这种功能的:

git reset HEAD^ 或者git reset --mixed HEAD^:取消上一次提交,但是修改的内容还保留着,修改的内容还没有添加到stage区域。

git reset --soft HEAD^:取消上一次提交,修改的内容还在,修改的内容已经在stage区域了。

git reset --hard HEAD^:取消上一次提交,修改的内容彻底不见了。

Working Copy:代表你正在工作的那个文件集。

INDEX:也被称为Staging area,是指一整套即将被下一个提交的文件集合。

HEAD:这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交。

程序从修改到被提交的顺序,先是在Wokring Copy,然后进入INDEX,然后在HEAD。所以你可以看成是一条线,红色就代表增量代码所在的区域,就容易理解多了。

发表回复