如何使用git reset命令

来自百问网嵌入式Linux wiki


git reset 命令可将当前的 HEAD 重置到指定的状态。一般用于撤消之前的一些操作(如:git add,git commit等)。
使用前先查看 git reset 的帮助信息:
    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$ git reset -h
    usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]
    or: git reset [-q] <tree-ish> [--] <paths>...
    or: git reset --patch [<tree-ish>] [--] [<paths>...]

        -q, --quiet           be quiet, only report errors
        --mixed               reset HEAD and index
        --soft                reset only HEAD
        --hard                reset HEAD, index and working tree
        --merge               reset HEAD, index and working tree
        --keep                reset HEAD but keep local changes
        -p, --patch           select hunks interactively
        -N, --intent-to-add   record only the fact that removed paths will be added later

    book@www.100ask.org:~/tmp/Embedded-Linux-ADCMSE$

放弃工作目录下的所有修改

   git reset --hard HEAD

放弃某个文件的所有本地修改

   git checkout HEAD <file>

将HEAD重置到上一次提交的版本,并抛弃该版本之后的所有修改

   git reset --hard <commit>

将HEAD重置到上一次提交的版本,并将之后修改标记未未添加到缓存区的修改

   git reset <commit>

将HEAD重置到上一次提交的版本,并保留未提交的本地修改

   git reset --keep <commit>