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

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

这意味着什么?


当前回答

我在Windows中遇到了这个问题。我关闭了我的IDE(Android Studio),并在gitshell中选择了YES。它奏效了。

其他回答

这里的解决方案对我有效:

这是一个特定于Windows的答案,所以我知道这与您无关。。。我只是为了未来搜索者的利益而加入它。在我的情况下,这是因为我从非提升的命令行运行Git。“以管理员身份运行”为我修复了它。

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

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

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

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

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

git config --global core.longpaths true

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

set GIT_ASK_YESNO=false

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

您可能会在Git 2.29(2020年第4季度)中看到这种错误:MinGW上的“unlink”仿真已经优化。

见Jeff Hostetler(Jeff Hostet ler)提交的680e0b4(2020年8月17日)。(由Junio C Hamano(吉斯特)于2020年8月19日提交5a04826合并)

mingw:提高mingw_unlink()的性能签字人:Jeff Hostetler签字人:Johannes Schindelin

更新mingw_unlink(),首先尝试删除具有现有权限的文件,然后再尝试强制删除。Windows在尝试删除只读文件时引发错误。mingw_unlink()兼容性包装器总是在调用_wunlink()之前尝试_wchmod(666)文件以避免该错误。然而,由于工作树中的大多数文件都是可写的,这通常是浪费精力。更新mingw_unlink(),直接调用DeleteFileW(),如果成功,则返回。如果失败,则返回现有代码路径以更新权限,并使用_wunlink()获取现有错误代码映射。