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

时间:2015-04-03 07:26:25

标签: git

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

命令"git status"显示文件列表(已修改 - 绿色)。但是,如果我想用命令"git diff"显示更改,git什么都不显示。 此外,当我尝试按"git checkout <FILE>"还原更改时,它不会产生任何结果。

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

2 个答案:

答案 0 :(得分:2)

  

我做过&#34; git reset --soft HEAD ^&#34;从提交中删除一些文件,但我有一些问题。   命令&#34; git status&#34;显示文件列表(已修改 - 绿色)。

根据文档的预期行为:

  

- 软

     

根本不触摸索引文件或工作树(但将头重置为,就像所有模式一样)。这留下了所有   你改变的文件&#34;要提交的更改&#34;,就像git状态一样   它

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

git reset --mixed HEAD^

或者只是:

git reset HEAD^

因为默认使用--mixed


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

git reset HEAD -- <file>

这将使文件不受限制。或者没有-- <file适用于所有文件。

或使用git diff --cached显示分阶段文件的差异。


  

当我尝试通过&#34; git checkout&#34;恢复更改时它没有结果。

git checkout <FILE>适用于文件未分页的情况。

答案 1 :(得分:1)

git reset --soft将文件保留为暂存状态,因此您需要使用git diff --cached来显示暂存更改的差异。