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