为了能够在Git中更改分支,我必须暂存所有修改过的文件。一旦我这样做,我就可以改变分支。但是,现在如果我执行git status
它没有检测到更改,但如果我执行git diff HEAD^ HEAD
或git diff HEAD^
则会显示更改。我该如何从中恢复? :S
答案 0 :(得分:2)
您不仅已经暂存了已修改的文件,而且似乎您还创建了一个提交。 HEAD^
指的是HEAD
的第一个父提交,HEAD
是当前提交,通常是分支的提示。所以git diff HEAD^ HEAD
显示了最后一次提交的差异。这类似于git show HEAD
显示的补丁。 git diff HEAD^
显示工作树与对应HEAD^
的树之间的差异,如果自上次提交后未对工作树进行任何修改,则该差异应等于git diff HEAD^ HEAD
如果您想返回并“取消”上次提交,可以使用以下命令:
git reset HEAD^
这会将当前分支重置为HEAD^
,而无需修改工作树。