Git stash 正在更改文件内容

Git stash is changing files contents

每次我点击 git stash 时,它都会将我的文件更改为上次提交时的状态。为什么会发生这种情况,如何阻止这种情况?

[Ev]ery time I hit git stash it is changing my files to their state in the previous commit.

这就是应该要做的事情。 git stash 所做的是提交你的工作(分为两个特殊的临时提交,称为 "stash";这些提交不在 any 分支上,因此很容易切换到另一个分支并恢复它们),然后执行 git reset --hardgit reset --hard 重置您的索引和工作树以匹配当前提交。

如果您不想要,请不要使用 git stash

请注意,您 可以 git stash 在 / 而不是进行硬重置之后检查提交的索引内容。我相信此选项旨在允许预提交挂钩 运行 对将由 git commit 提交的文件进行代码检查操作。此选项是 -k(如 git stash -k)。这个策略有一些小缺陷;见 How do I properly git stash/pop in pre-commit hooks to get a clean working tree for tests?