git status 显示修改的文件,但 git diff 不显示任何内容

Mar*_*cin 5 git

我已经完成了"git reset --soft HEAD^"从提交中删除一些文件的操作,但是我遇到了一些问题。

命令"git status"显示文件列表(已修改 - 绿色)。但是如果我想用命令"git diff"git 显示更改,则什么也不显示。另外,当我尝试恢复更改时,"git checkout <FILE>"它没有给出任何结果。

如果我打开这些文件中的任何一个,我就会看到我的更改。

pht*_*hts 4

我已经完成了“git reset --soft HEAD^”来删除提交中的一些文件,但我遇到了一些问题。命令“git status”显示文件列表(已修改 - 绿色)。

根据文档,此预期行为:

- 柔软的

根本不触及索引文件或工作树(但将头重置为 ,就像所有模式一样)。这会使所有更改的文件“要提交的更改”,正如 git status 所说的那样。

将来使用--mixed标志将文件移动到非暂存区域

git reset --mixed HEAD^
Run Code Online (Sandbox Code Playgroud)

要不就:

git reset HEAD^
Run Code Online (Sandbox Code Playgroud)

因为--mixed默认使用


目前的情况可以通过以下方式解决:

git reset HEAD -- <file>
Run Code Online (Sandbox Code Playgroud)

这将使文件取消暂存。或者不-- <file应用到所有文件。

或者用于git diff --cached显示暂存文件的差异。


另外,当我尝试通过“git checkout”恢复更改时,它没有给出任何结果。

git checkout <FILE>如果文件未暂存,则有效。