使用git reset取消暂存文件而不指定HEAD

时间:2014-01-24 14:08:24

标签: git

在git中取消暂存文件时,推荐的方法是:

git reset HEAD <file>

但是,我发现这也有效:

git reset <file>

为什么在第一种情况下需要HEAD,如果第二种情况似乎也有效并且输入的时间更短?

3 个答案:

答案 0 :(得分:1)

不是。根据这个git-reset文档:

  

<commit>默认为所有表格中的HEAD。

答案 1 :(得分:1)

该手册页明确指出“<tree-ish>/<commit>参数默认为HEAD的所有形式。”所以第二种形式相当于第一种形式。如果您想知道为什么git status推荐第二种形式,那么在不使用任何默认值的情况下提供完整版本似乎是有意义的,特别是对于新用户。但是你对教学的看法可能会有所不同。

答案 2 :(得分:0)

除了“它不是”答案之外,如果您有一个名为zoop的文件和一个名为zoop的分支并输入以下内容会发生什么:

git reset zoop

zoop参数是分支名称还是文件名?

如果输入以下内容怎么办?

git reset zoop zoop

?如果你使用表格怎么样:

git reset -- zoop

? (制作一个虚拟回购并试验这些,看看会发生什么。)