关于git reset

Jan 4, 2016


git reset有两种模式。

  • git reset [-q] [<tree-ish>] [--] <paths>…​
  • git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

第一种相当于git add的反操作。 git reset 1.txt 也可以从某个commit中拿出某个文件放到当前的暂存区中。 git reset <tree-ish> 1.txt 另一个命令是git checkout <tree-ish> 1.txt,从某个commit中拿出文件放到暂存区和工作区中。

第二种模式中

  • –mixed 这是默认的参数,重置成某个commit的暂存区而不重置工作区。
  • –soft 不动暂存区和工作区,仅仅将指针指向某个commit。如果对上次提交不满意,相当于撤消了一次提交。
  • –hard 重置暂存区和工作区。