Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
作为 git 的新手,我正在研究我可以做的各种重置。
我的印象是git reset --soft不会改变索引或工作目录,它只会改变 repo 的头部。
git reset --soft
所以我过去对提交执行了软重置。
由于我的索引或工作目录都不应该更改,我现在希望 agit status说我有未跟踪的更改,因为我的工作目录中的文件将比我刚刚在 repo 中的文件更新回去了。
git status
但是它告诉我我修改过的文件在索引中?怎么会这样?我没有答应他们。毕竟软重置会改变索引吗?
git reset --soft不会更改索引,因此除非您要移动到的提交与重置之前索引中的实际内容相同,否则您的索引将与新HEAD提交不同。根据定义HEAD,您的索引和您的索引之间的差异是阶段性更改。
HEAD
由于您的索引没有更改,因此如果您没有任何未暂存的更改,您仍然没有未暂存的更改。您的工作树和索引之间的差异将与以前相同;两者都没有改变。
(听起来您所期望的实际上是标准reset- 或reset --mixed 所做的:移动您的HEAD然后更新您的索引以匹配新的HEAD.)
reset
reset --mixed