Git 取消文件链接失败。我应该再试一次吗?
我的本地git存储库中的一个文件出了问题。当我试图更改分支时,它会显示:Git 取消文件链接失败。我应该再试一次吗?,git,unlink,Git,Unlink,我的本地git存储库中的一个文件出了问题。当我试图更改分支时,它会显示: Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n) 这意味着什么?这可能意味着另一个程序正在使用该文件,这会阻止git在您试图更改分支时将该文件“移动”到工作目录中或从中移出 我在WindowsVista上遇到过这种情况,eclipse是“使用”该文件的程序。该文件可能不是在eclipse中实际打开的,但可能是
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
这意味着什么?这可能意味着另一个程序正在使用该文件,这会阻止git在您试图更改分支时将该文件“移动”到工作目录中或从中移出 我在WindowsVista上遇到过这种情况,eclipse是“使用”该文件的程序。该文件可能不是在eclipse中实际打开的,但可能是由eclipse运行的进程打开的
在这种情况下,请尝试在可能使用该文件的任何应用程序中关闭该文件。如果不起作用,请完全退出可能已打开该文件的任何应用程序 在我的例子中,没有进程触及文件或目录。如果路径很长,可能会发生这种情况,因为存在操作系统限制(windows)。尝试在全局git配置中启用longpath支持标志,如下所示:
git config --global core.longpaths true
或者尝试设置“是/否”回答标志,如果它对您来说没有冲突
set GIT_ASK_YESNO=false
如果路径太长,则未找到成功的解决方案。我在
/.git/objects/pack
文件夹中的.tmp
文件中遇到此问题。我想在推拉过程中出现了一些故障,所以我删除了这些临时文件,并将头部重置为我的最后一次提交。不确定这是否是建议,但它对我有效。另外,git count objects-v
给了我一个不属于pack文件夹的.tmp
文件列表
或者要在windowsgit open cmd.exe
中抑制y/n消息并运行:
SETX GIT_ASK_YESNO false
如图所示:我遇到了这个问题,并通过命令解决了它:
git-gc
上面的命令删除临时文件和不必要的文件。(垃圾收集器。)这可能是一个单独的gitk窗口,运行该窗口可以查看一些git历史记录
只需关闭该窗口即可解决该问题。我在同时运行git Bash和Eclipse EGit时遇到了这个问题。 解决方案:关闭Eclipse。运行@khilo提到的
git gc
。这个解决方案对我很有用:
这是一个Windows特定的答案,所以我知道它与您无关。。。我只是为了将来的搜索者的利益才把它包括进来
在我的例子中,这是因为我从非提升的命令行运行Git。“以管理员身份运行”为我修复了它
我在Windows7上遇到这种问题,结果是由于一些孤立的
git.exe
进程
要解决此问题,请打开任务管理器并杀死所有git.exe
进程
由于git
命令的寿命很短,您通常不会在任务管理器中看到任何git.exe
。当它们出现时,通常意味着出现了问题,您应该终止这些进程。在我的例子中(Win8.1,TortoiseGit运行),是名为“TortoiseSVN状态缓存”的进程锁定了文件
杀死它让我可以运行“git-gc”,没有任何问题。
上面的过程是由TortoiseGit启动的,因此不需要手动重新启动它。我在执行git pull时遇到了这个问题
我尝试了git gc,它解决了我的问题。在Windows 8上: 我运行了git gc,它说git gc已经在运行了,我运行了git gc——force,垃圾收集器运行了 然后,我可以切换分支并合并,而不会出现任何问题,尝试git gc--force
也许gc过程并没有因为这样或那样的原因而优雅地停止。在尝试了各种解决方案之后,git clean-f最终帮助了我
编辑:我又碰到过几次这个问题-关闭所有依赖于git的进程似乎有帮助(如gitbash、Eclipse IDE等)在上述答案都不起作用之后,运行
git fetch-p
帮我完成了这项工作
我在Windows中遇到了这个问题,您可能希望以管理员身份运行git bash,然后执行desire命令,这为我解决了这个问题。我在Windows中遇到了这个问题。我关闭了我的IDE(androidstudio),并在gitshell中选择了YES。它成功了。我在做“git pull”时遇到了同样的问题。我尝试了手动管理git命令“git-gc”,它解决了我的问题。如上所述,其他东西正在保存文件。问题是这个程序对我们来说并没有可疑。
我试着从控制台上拉git,同时打开GitKraken。关闭GitKraken修复了问题。这可能对某些人有用;如果以上所有操作都不适用于您,请执行以下步骤:
gitgc
这对我来说很神奇 在Windows上,在(相当大的)回购协议的
git克隆上看到此错误。关闭并暂停我的备份软件(CrashPlan),然后它开始工作。不确定这两个选项中的哪一个起作用,但如果运行其中一个,这可能也会对您起作用。我在执行git pull时遇到同样的问题,如上所述,这是因为一个程序保存了这些文件,不允许git pull。结束该计划有帮助。通常,文件签入的IDE(如Eclipse)将在后台保存它。关闭同一个并重新运行git pull为我解决了问题。After run命令
git rm -rf foo.bar
我看到了错误
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
因为另一个程序正在使用此文件。例如,当我在调试模型中运行Java web应用程序或在服务器上运行web应用程序时,我不能删除日志文件。关闭应用服务器(或关闭调试进程),然后重试
我看到文件已被删除。我遇到了同样的错误,关闭打开文件的应用程序解决了这个问题。我可以回去按“Y”
git rm -rf foo.bar
git config --global gc.auto 0