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

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

这意味着什么?


当前回答

运行后命令

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

我看到文件已被删除。

其他回答

我在运行gitBash和EclipseEGit的同时遇到了这个问题。解决方案:关闭Eclipse。也不会像@khilo提到的那样运行gitgc。

我遇到了这个问题,并通过命令gitgc解决了它上面的命令删除临时文件和不必要的文件。(垃圾收集器。)

如果关闭IDE并运行此处列出的各种git命令无济于事,请尝试手动关闭所有正在运行的Java进程。我有一个可能是eclipse遗留下来的Java进程,它以某种方式打开了一个配置文件。

在Windows 8上:我运行了git-gc,它说git-gc已经在运行,我运行了git-gc-force,垃圾收集器运行了。

然后,我可以切换分支和合并而没有任何问题,尝试git-gc-force。

也许gc进程没有因为这样或那样的原因而优雅地停止。

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

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

taskkill /F /IM java.exe

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

kill -9 `pidof java`