Git状态不会显示更改,但git diff会显示

时间:2014-02-26 15:21:21

标签: git

为了能够在Git中更改分支,我必须暂存所有修改过的文件。一旦我这样做,我就可以改变分支。但是,现在如果我执行git status它没有检测到更改,但如果我执行git diff HEAD^ HEADgit diff HEAD^则会显示更改。我该如何从中恢复? :S

1 个答案:

答案 0 :(得分:2)

您不仅已经暂存了已修改的文件,而且似乎您还创建了一个提交。 HEAD^指的是HEAD的第一个父提交,HEAD是当前提交,通常是分支的提示。所以git diff HEAD^ HEAD显示了最后一次提交的差异。这类似于git show HEAD显示的补丁。 git diff HEAD^显示工作树与对应HEAD^的树之间的差异,如果自上次提交后未对工作树进行任何修改,则该差异应等于git diff HEAD^ HEAD

如果您想返回并“取消”上次提交,可以使用以下命令:

git reset HEAD^

这会将当前分支重置为HEAD^,而无需修改工作树。