Git:将单个文件恢复到上次提交

vin*_*aes 5 git

我想将文件恢复到上次提交时的状态。

我修改、添加并提交了其他文件。但有一个文件我没有暂存。

我想将其状态(仅该文件的状态)恢复到该文件提交的最后一次提交。

换句话说,我只想忽略对该文件所做的最后更改并将其恢复到它参与提交的最后一点。

小智 12

您可以使用:

    git checkout <file-with-path>
Run Code Online (Sandbox Code Playgroud)

或者

    git restore <file-with-path>
Run Code Online (Sandbox Code Playgroud)

如果您已经提交了文件,Git checkout 就可以工作。如果文件已经暂存,您可以将 --staged 标志添加到 git Restore 来恢复它。

https://git-scm.com/docs/git-restore

  • 这并不完全是OP要求做的,但考虑到OP的描述,实际上会很好地工作。但是要小心“git Restore --staged”,它不会更新工作树副本;使用 `git Restore --staged --work-tree` 更新*两个*副本,但也需要 `--source` 选项。命令 `git Restore --source HEAD -s -w path/to/file` 与 `git checkout HEAD --path/to/file` 执行相同的操作,也适用于此处。 (2认同)
  • 抱歉,为什么我的 git 无法将恢复识别为命令? (2认同)
  • 无论如何, git checkout &lt;file-with-path&gt; 命令有效,谢谢@gIco (2认同)