在git的一般使用中,如果发现错误的将不想提交的文件add进入index之后,想回退取消,则可以使用命令:git reset HEAD ...,同时git add完毕之后,git也会做相应的提示,比如:
引用
# Changes to be committed:
# (use "git reset HEAD..." to unstage)
#
# new file: Test.scala
git reset [--hard|soft|mixed|merge|keep] [或HEAD]:将当前的分支重设(reset)到指定的或者HEAD(默认,如果不显示指定commit,默认是HEAD,即最新的一次提交),并且根据[mode]有可能更新index和working directory。
下面列出一些git reset的典型的应用场景:
A) 回滚add操纵
引用
$ edit (1)
$ git add frotz.c filfre.c
$ mailx (2)
$ git reset (3)
$ git pull git://info.example.com/ nitfol (4)
(1) 编辑文件frotz.c, filfre.c,做了些更改,并把更改添加到了index
(2) 查看邮件,发现某人要你pull,有一些改变需要你merge下来
(3) 然而,你已经把index搞乱了,因为index同HEAD commit不匹配了,但是你知道,即将pull的东西不会影响已经修改的fro