问题是关于 Emacs 功能的 Magit 主要模式,而不是关于如何通过命令行界面执行此操作的问题。
我只有一个本地 Git 存储库。如何将选定的文件恢复到以前的版本?我相信为此的 Git 命令必须是 git checkout HEAD^ path/to/file
之类的东西,但我在这里也可能错了,只是猜测而已。
我正在寻找的内容与 vc-dir
缓冲区中的 Cx v u 基本相同。
本质上,我希望做的是:
删除修改的文件。
从本地仓库中提取。
但是 Magit 似乎无法做到这一点,它似乎更喜欢只删除文件,而不是恢复它。
*magit-status*
中)? (2) 如果你只想恢复到基础,为什么不使用vc
次要模式C-x v u
?
git checkout HEAD file
将丢弃未提交的更改。 git checkout HEAD^ file
还将恢复在最近一次提交到存储库时对文件所做的更改(如果有)。如果该提交不涉及相关文件,则 ^
实际上是多余的。根据您的“删除和拉取”摘要,您只想丢弃未提交的更改,在这种情况下,Rémi 的答案就是您想要的。
在 magit 中,您只需要继续处理要还原的块或文件,然后使用 k
放弃修改。有关更多详细信息,请参阅 https://magit.vc/manual/1.4/magit/Staging-and-Committing.html 中的相关文档。
打开文件后,您可以M-x magit-file-checkout
。
magit-checkout-file
已弃用,请改用 magit-file-checkout
。
HEAD
commit
之后反向使用:如果您已将文件与其他更改一起提交,您可以使用v
revert
,然后k
反向更改您想要的位置保留更改。