我已经对作为一组文件的一部分提交了几次的文件进行了一些更改,但现在想将其上的更改重置/恢复到以前的版本。
我已经完成了 agit log和 agit diff以找到我需要的修订版,但只是不知道如何将文件恢复到过去的状态。
git log
git diff
假设您想要的提交的哈希是c5f567:
c5f567
git checkout c5f567 -- file1/to/restore file2/to/restore
git checkout手册页提供了更多信息。
如果您想恢复之前的提交c5f567,请追加~1(其中 1 是您要返回的提交次数,可以是任何值):
~1
git checkout c5f567~1 -- file1/to/restore file2/to/restore
附带说明一下,我一直对这个命令感到不舒服,因为它既用于普通事物(在分支之间更改),也用于不寻常的破坏性事物(丢弃工作目录中的更改)。
还有一个新git restore命令专门用于恢复已修改的工作副本文件。如果您的 git 足够新,您可以使用此命令,但文档附带警告:
git restore
此命令是实验性的。行为可能会改变。