git - 如何将文件重置或还原为特定修订版?

标签 git version-control git-checkout

如何在特定提交哈希(我通过 git loggit diff 确定)将修改后的文件恢复到其先前的修订版?

最佳答案

假设你想要的提交的哈希是c5f567:

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

git checkout手册页提供了更多信息。

如果你想恢复到 c5f567 之前的提交,附加 ~1 (其中 1 是你想返回的提交数,它可以是任何东西) :

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

附带说明一下,我一直对这个命令感到不舒服,因为它既用于普通事情(在分支之间更改),也用于不寻常的破坏性事情(丢弃工作目录中的更改)。


还有一个新的git restore专为恢复已修改的工作副本文件而设计的命令。如果你的 git 足够新,你可以使用这个命令,但是文档带有警告:

THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE.

关于git - 如何将文件重置或还原为特定修订版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/725749/

相关文章:

git - 并发 git checkout/add/commit

eclipse - 将文件添加到 Mercurial 控制的存储库

svn - 如何在 SVN 中分支单个文件?

php - 列出依赖特定 GitHub repository/library/dependency 的所有存储库

git - 为什么切换分支的 git 命令命名为 "git checkout"?

git - 用于 git 标记验证和 git checkout 的组合命令?

单一开发人员的 Github 工作流程

git - 防止在 Mac 上出现 GPG 密码提示

git - 如何让 Git 提交历史显示在 Redmine 问题跟踪器上

Git:如何在不接触工作目录的情况下切换分支?