2015-04-03 114 views
2

我已经完成了"git reset --soft HEAD^"以摆脱一些文件提交,但我有一些问题。git status显示修改后的文件,但git diff没有显示任何内容

命令"git status"显示文件列表(修改为绿色)。但如果我想用命令"git diff"显示更改,git什么都不显示。 另外,当我试图恢复"git checkout <FILE>"所做的更改时,它没有任何结果。

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

回答

1

我已经完成了“git reset --soft HEAD ^”来摆脱一些文件提交,但我有一些问题。 命令“git status”显示文件列表(修改为绿色)。

根据文档此预期的行为:

--soft

不触及索引文件或所有工作树(但头重置,就好像所有的模式做)。这会使所有 更改文件“更改为提交”,因为git状态会将其放入 它。

在未来使用--mixed标志,将文件移动到没有上演区

git reset --mixed HEAD^ 

或者只是:

git reset HEAD^ 

因为--mixed默认使用


的当前s可通过以下方式修复计算:

git reset HEAD -- <file> 

这将使文件不分离。或者没有-- <file适用于所有文件。

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


此外,当我试图恢复被改变“混帐结账”它没有给出结果。

git checkout <FILE>如果文件未分离则工作。

+0

谢谢。我做'git reset HEAD ^'(没有--soft),所有的命令(diff,checkout)按我的预期工作。 – Marcin 2015-04-03 07:43:36

1

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

+0

它的工作原理。但我仍然需要恢复一些文件。 – Marcin 2015-04-03 07:40:02

相关问题