我不小心做了结帐文件。该文件有代码更改。
那么我可以恢复这些变化吗?
与留下评论的人所相信的相反,特定于路径的签出(即git checkout path/to/my/file
)确实会在没有警告的情况下覆盖您在该文件中的未暂存更改,因为如果您打算撤消未暂存的更改,这正是 git 希望您使用的命令。
不幸的是,由于这些更改是未分阶段的,git 没有它们的历史。虽然 git 非常擅长在提交后保留历史记录,但它基本上没有为工作树提供特殊保护;因此影响未跟踪文件或具有未暂存更改的文件的命令特别危险。
如果您进行连续备份(或者幸运并在更改存在时进行了备份),您可以使用这些备份。一些 IDE 保留可能有帮助的工作历史。但不幸的是,在大多数情况下(除非您有异常可靠的备份实践),在这种情况下可能没什么可做的。