1

作为 git 的新手,我正在研究我可以做的各种重置。

我的印象是git reset --soft不会改变索引或工作目录,它只会改变 repo 的头部。

所以我过去对提交执行了软重置。

由于我的索引或工作目录都不应该更改,我现在希望 agit status说我有未跟踪的更改,因为我的工作目录中的文件将比我刚刚在 repo 中的文件更新回去了。

但是它告诉我我修改过的文件在索引中?怎么会这样?我没有答应他们。毕竟软重置会改变索引吗?

4

1 回答 1

1

git reset --soft不会更改索引,因此除非您要移动到的提交与重置之前索引中的实际内容相同,否则您的索引将与新HEAD提交不同。根据定义HEAD,您的索引和您的索引之间的差异是阶段性更改。

由于您的索引没有更改,因此如果您没有任何未暂存的更改,您仍然没有未暂存的更改。您的工作树和索引之间的差异将与以前相同;两者都没有改变。

(听起来您所期望的实际上是标准reset- 或reset --mixed 所做的:移动您的HEAD然后更新您的索引以匹配新的HEAD.)

于 2013-05-22T15:20:38.030 回答