我的本地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

我看到文件已被删除。

其他回答

如上所述,其他东西保存着这些文件。问题是,这个程序对我们来说并不可疑。我正在尝试从控制台中进行git拉取,同时打开了GitKraken。关闭GitKraken解决了问题。

我在做git拉动时遇到了这个问题。

我尝试了gitgc,它解决了我的问题。

这可能意味着另一个程序正在使用该文件,这会阻止git在您尝试更改分支时将文件“移入”工作目录或移出工作目录。

我在Windows Vista上遇到过这种情况,eclipse是“使用”文件的程序。该文件可能在eclipse中没有实际打开,但可能是由eclipse运行的进程打开的。

在这种情况下,请尝试在可能使用过该文件的任何应用程序中关闭该文件。如果这不起作用,请完全退出可能已打开该文件的所有应用程序。

我在进行git拉取时也遇到了同样的问题,如上所述,这是因为一个保存这些文件的程序不允许git拉。关闭程序有帮助。通常,签入文件的IDE(如Eclipse)将在后台保存文件。关闭同一个并重新运行git pull为我解决了问题。

在尝试了各种解决方案后,gitclean-f终于帮了我。

编辑:我几次又碰到了这个问题——关闭所有依赖git的进程似乎有帮助(比如gitbash、EclipseIDE等)