Git无法恢复:找到一个交换文件"COMMIT_EDITMSG.swp"

sna*_*ile 4 git

我在Visual Studio 2013中使用git.我正在尝试恢复到特定的提交,而不会丢失从提交到当前提交的历史记录.换句话说,我希望git生成一个新的提交,它与指定的提交具有相同的快照.这就是我所做的:

git revert <commit>
Run Code Online (Sandbox Code Playgroud)

<commit>我想要恢复的提交的id 在哪里.

执行上述操作(在Visual Studio的git命令提示符下)导致以下错误:

找到一个名为".git\.COMMIT_EDITMSG.swp"的交换文件,同时打开文件".git\.COMMIT_EDITMSG.swp"比交换文件更新!

然后

交换文件".git\.COMMIT_EDITMSG.swp"已经存在!

我无法弄清楚这意味着什么.我做错了吗?我该如何恢复到特定的提交?

pok*_*oke 8

当您开始编辑文件时,交换文件由编辑器vim创建; 它本质上是一个备份文件,以防编辑器崩溃.

现在,如果编辑器启动并找到交换文件,它通常会提示您决定要执行的操作,是否还原以前的编辑器会话或放弃这些更改.

如果您不关心这一点,您可以在启动编辑器之前先删除交换文件:

rm .git/.COMMIT_EDITMSG.swp
Run Code Online (Sandbox Code Playgroud)

这应该删除交换文件,因此下次编辑器启动时,您将不再获得该消息,并且可以像往常一样工作.