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

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

这意味着什么?


当前回答

在我的例子中(Win8.1,TortoiseGit正在运行),锁定文件的是名为“TortoiseSVN状态缓存”的进程。

杀死它让我可以运行“git-gc”而不再出现任何问题。上述过程由TortoiseGit启动,因此无需手动重新启动。

其他回答

如果您正在使用Docker并运行Windows 10,您可能需要停止文件运行所在的容器。要显示容器的状态,请运行

码头工人ps-a

要阻止它们,只需运行

docker stop<容器名称或容器id>

这对我很有用,因为我正在使用.sh文件运行本地文件

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

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

taskkill /F /IM java.exe

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

kill -9 `pidof java`

在上面的答案似乎都不起作用之后,运行gitfetch-p为我完成了任务。

https://git-scm.com/docs/git-fetch

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

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

git config --global core.longpaths true

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

set GIT_ASK_YESNO=false

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