我的本地git存储库中的一个文件发生了问题。当我试图改变分支时,它会说:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
这意味着什么?
我的本地git存储库中的一个文件发生了问题。当我试图改变分支时,它会说:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
这意味着什么?
当前回答
我以管理员身份打开Powershell并从中解决了这个问题git checkout<branch_name>
其他回答
如果您的操作系统主机与linux/unix类似,您可以运行git-gc-force来停止使用git文件的文件处理程序,
否则,如果您正在使用windows,则可以通过任务管理器或进程管理器停止git进程。似乎有另一个git进程正在使用您的git文件。只需终止git进程
运行后命令
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在您尝试更改分支时将文件“移入”工作目录或移出工作目录。
我在Windows Vista上遇到过这种情况,eclipse是“使用”文件的程序。该文件可能在eclipse中没有实际打开,但可能是由eclipse运行的进程打开的。
在这种情况下,请尝试在可能使用过该文件的任何应用程序中关闭该文件。如果这不起作用,请完全退出可能已打开该文件的所有应用程序。
正如上面的答案中所提到的,yes文件可能必须被其他java进程使用,摆脱这个问题的简单方法是,杀死所有java进程,然后执行git pull。
对于windows,关闭所有java进程:
taskkill /F /IM java.exe
对于Linux,杀死所有java进程:
kill -9 `pidof java`
在我的例子中,没有进程触及文件或目录。如果路径很长,可能会发生这种情况,因为操作系统限制(windows)。尝试在全局git配置中启用longpath支持标志,如下所示:
git config --global core.longpaths true
或者尝试设置是/否回答标志,如果这对你来说不冲突
set GIT_ASK_YESNO=false
如果路径太长,我还没有找到成功的解决方案。