一尘不染

如何将文件重置或恢复到特定版本?

git

我对作为一组文件的一部分提交了几次的文件进行了一些更改,但现在想将对其的更改重置/恢复到以前的版本。

我已经完成了 agit log和 agit diff以找到我需要的修订版,但只是不知道如何将文件恢复到过去的状态。


阅读 299

收藏
2022-01-06

共1个答案

一尘不染

假设您想要的提交的哈希是c5f567

git checkout c5f567 -- file1/to/restore file2/to/restore

git的结帐手册页提供了更多的信息。

如果您想恢复到之前的提交c5f567,请追加~1(其中 1 是您想要返回的提交次数,它可以是任何内容):

git checkout c5f567~1 -- file1/to/restore file2/to/restore

作为旁注,我一直对这个命令感到不舒服,因为它用于普通事物(在分支之间更改)和不寻常的破坏性事物(丢弃工作目录中的更改)。


还有一个新git restore命令专门用于恢复已修改的工作副本文件。如果您的 git 足够新,您可以使用此命令,但文档附带警告:

此命令是实验性的。行为可能会改变。

2022-01-06