我的本地git存储库中的一个文件发生了问题。当我试图改变分支时,它会说:

Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)

这意味着什么?


当前回答

我尝试了这一页上的每一条提示,但没有任何帮助。我正在进行git获取和git重置——硬起源/开发给了我一个未知的错误。我无法重置为最新提交。

有帮助的是检查另一个分支,然后检查上一个分支。很奇怪,但它解决了问题。

其他回答

运行后命令

git rm -rf foo.bar

我看到了错误

Unlink of file 'foo.bar' failed. Should I try again? (y/n)

因为另一个程序正在使用此文件。例如,当我在调试模型中运行Java web应用程序或在服务器上运行web应用程序时,我不能删除日志文件。关闭应用程序服务器(或关闭调试进程),然后重试

git rm -rf foo.bar

我看到文件已被删除。

我在Windows7上遇到了这种问题,结果是由于一些孤立的git.exe进程。

要解决此问题,请打开任务管理器并终止所有git.exe进程。

由于git命令是短时间的,因此您通常不会在任务管理器中看到任何git.exe。当它们出现时,通常意味着出现了问题,您应该终止这些进程。

如果您正在开发web应用程序,一个常见的原因是忘记关闭服务器。例如,这可能是一个简单的Node.js进程,或者在windows上,您的IIS进程作为后台进程运行得更加不显眼。

在我的例子中,没有进程触及文件或目录。如果路径很长,可能会发生这种情况,因为操作系统限制(windows)。尝试在全局git配置中启用longpath支持标志,如下所示:

git config --global core.longpaths true

或者尝试设置是/否回答标志,如果这对你来说不冲突

set GIT_ASK_YESNO=false

如果路径太长,我还没有找到成功的解决方案。

正如上面的答案中所提到的,yes文件可能必须被其他java进程使用,摆脱这个问题的简单方法是,杀死所有java进程,然后执行git pull。

对于windows,关闭所有java进程:

taskkill /F /IM java.exe

对于Linux,杀死所有java进程:

kill -9 `pidof java`