在我签出之前的提交后,我可以看到未提交的更改

I can see the uncommited changes after I checkout to an earlier commit

我有一个存储库,它有两个文件:file1file2

我对 file2 进行了更改,仅将 file2 添加到暂存区并提交。

然后我对 file1 进行了更改,但我没有将其添加到暂存区或提交更改。

现在我对较早的提交进行结帐。

file2 的更改在结帐后未显示。

但是我可以看到file1的变化。

在我签出之后,存储库中的所有文件不应该恢复到之前提交的状态吗?

请解释发生这种情况的原因。

您所描述的符合预期。

只要未提交的更改与您正在检出的文件的状态不冲突,它们就会保留在工作树中。

如果它们发生冲突,或者如果您未提交的更改会在签出时被删除,git 会输出警告并取消操作。


作为旁注,在实际层面上,如果您需要检查较早的提交,尽管工作树中有未提交的更改,您可以 stash 您的更改供以后使用,检查您想要的内容,然后在需要时恢复你的藏品。