git reset文档 - 它是如何与git add相反的?

时间:2016-07-31 00:51:14

标签: git

文档说:

  git reset [-q] [<tree-ish>] [--] <paths>...
     

此表单将所有<paths>的索引条目重置为<tree-ish>的状态。 (它不会影响工作树或当前分支。)

     

这意味着git reset <paths>git add <paths>相反。

我有点认为“......这意味着git reset与git add相反......”是错误的。

如果git add从工作目录复制到索引,可能会认为与索引到工作目录的副本相反。

但是这种形式的git reset从树木复制到索引和git checkout-index实际上会相反。

它与git add的反面如何?如果不相反,是否值得尝试更新文档?

1 个答案:

答案 0 :(得分:2)

commit 7b8cd49 Thomas Rast (trast)为Git v1.7。3。2(2010年7月)引入了这种描述git重置的特殊方式

当时,discussion proposed the initial form

  

这意味着git reset <paths>git add +<paths>相反,前提是<paths>已被跟踪

Junio C. Hamano评论道:

  

以上是对“带路径”模式的更清晰的描述   目前有。我怀疑我们需要“,只要......”。

     来自没有git reset HEAD frotz的头部提交的“frotz”从索引中删除frotz,不是吗?

我在“git reset vs git reset HEAD”中提到git reset <tree-ish> <file>如何取消(取消添加)文件。

如果只考虑索引(而不是工作目录),git reset <tree-ish> <file>确实与git add相反。