【发布时间】:2013-06-12 11:20:27
【问题描述】:
问题是关于 Emacs 功能的 Magit 主模式,而不是关于如何通过命令行界面执行此操作。
我只有一个本地 Git 存储库。如何将选定的文件恢复到以前的版本?我相信为此使用的 Git 命令一定是 git checkout HEAD^ path/to/file 之类的东西,但我在这里也可能错了,只是猜测而已。
我正在寻找的内容与 vc-dir 缓冲区中的 C-x v u 基本相同。
基本上,我希望做的是:
删除修改后的文件。
从本地仓库拉取。
但 Magit 似乎无法做到这一点,它似乎更喜欢只删除文件,而不是恢复它。
【问题讨论】:
-
(1) Magit 历史缓冲区肯定支持这一点(虽然我不记得如何),您是否需要其他方式(例如在
*magit-status*中)? (2) 如果你只想恢复到base,为什么不使用vc次要模式C-x v u? -
您是在谈论丢弃未提交的更改(即恢复到当前提交的版本),还是恢复到先前的提交?
git checkout HEAD file将丢弃未提交的更改。git checkout HEAD^ file还将恢复对存储库的最近提交中对文件所做的更改(如果有)。如果该提交不涉及相关文件,则^实际上是多余的。根据您的“删除并拉取”摘要,您只想丢弃未提交的更改,在这种情况下,Rémi 的答案就是您想要的。