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

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

这意味着什么?


当前回答

对我来说,我必须进入.git文件夹并删除index.lock文件。之后,我可以像往常一样撤销。

其他回答

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

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

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

在使用gitkraken和命令提示符时,我遇到了同样的问题。然后我运行gitgc命令,它解决了我的问题。所以我很高兴,想分享一些可能有帮助的观点。

gitgc将做什么?

gitgc删除以前调用gitadd时可能创建的无法访问的对象。

何时运行git-gc?

在doc中,鼓励用户在每个存储库中定期运行此任务,以保持良好的磁盘空间利用率和良好的操作性能。

如何使其自动配置?

一些git命令可能会自动运行gitgc;有关详细信息,请参阅下面的--auto标志。如果你知道你在做什么,你只想在没有进一步考虑的情况下永久禁用这个行为,那么就这样做

git config --global gc.auto 0

如果您的操作系统主机与linux/unix类似,您可以运行git-gc-force来停止使用git文件的文件处理程序,

否则,如果您正在使用windows,则可以通过任务管理器或进程管理器停止git进程。似乎有另一个git进程正在使用您的git文件。只需终止git进程

在Windows上,在(相当大的)回购的git克隆上看到了此错误。关闭SmartGit并暂停了我的备份软件(CrashPlan),之后它就开始工作了。不确定这两个人中的哪一个做到了这一点,但如果他们中的任何一个跑步,这可能也会对你有用。

运行后命令

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

我看到文件已被删除。