Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 取消文件链接失败。我应该再试一次吗?_Git_Unlink - Fatal编程技术网

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中实际打开的,但可能是

我的本地git存储库中的一个文件出了问题。当我试图更改分支时,它会显示:

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
文件列表

或者要在windows
git 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修复了问题。

这可能对某些人有用;如果以上所有操作都不适用于您,请执行以下步骤:

  • 关闭您的IDE(我的是Eclipse,不确定它是否适用于Intellij和其他应用程序)或任何其他可能使用git的应用程序

  • 从命令行打开git(在我的例子中,我有gitbash)并运行其他人提到的
    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