Windows 取消文件链接失败

Windows 取消文件链接失败,windows,git,Windows,Git,我正在尝试执行git pull,但出现以下错误: 取消文件“lib/xxx.jar”的链接失败。我应该再试一次吗?(是/否) 无论我选择y还是n,都不可能达到可以拉或推的状态。这通常意味着进程仍在使用该特定文件(仍有句柄) (在Windows上,擅长跟踪此类流程) 尝试关闭其他程序,然后重试您的git pull 请注意,您可以选择使用 2019年1月更新: 对于Git 2.21(2019年第1季度),这一点应该更加固定,因为“Git gc”和“Git repack”在删除它们之前没有关闭它们发

我正在尝试执行git pull,但出现以下错误:

取消文件“lib/xxx.jar”的链接失败。我应该再试一次吗?(是/否)


无论我选择y还是n,都不可能达到可以拉或推的状态。

这通常意味着进程仍在使用该特定文件(仍有句柄)
(在Windows上,擅长跟踪此类流程)

尝试关闭其他程序,然后重试您的
git pull

请注意,您可以选择使用


2019年1月更新:

对于Git 2.21(2019年第1季度),这一点应该更加固定,因为“
Git gc
”和“
Git repack
”在删除它们之前没有关闭它们发现不需要的打开的打包文件,这在无法删除打开的文件的平台上不起作用。
这一点已得到纠正

参见。
(于2019年1月18日合并)

gc
/
repack
:需要时释放包装 在Windows上,如果进程仍保留句柄,则无法删除或重命名文件。
为了解决这个问题,我们引入了
close\u all\u packs()
函数

早些时候,我们确保在生成
git gc
之前发布包,以防
gc
想要删除不再需要的包

但是该开发人员忘记了,
gc
本身也需要释放包,例如,当通过
--aggressive
选项整合所有包时

类似地,
gitrepack-d
想要删除过时的包,因此也需要关闭所有包句柄


2016年1月更新

这应在Git 2.8(2016年3月)中确定(见下文Git 2.19,2018年第三季度)

参见,,(2016年1月13日)作者。
(于2016年1月26日被合并)

fetch
:在垃圾收集之前释放包文件 在自动gc’ing之前,我们需要确保释放包文件,以防它们需要重新打包和垃圾收集

许多在退出之前运行“
gc--auto
”的代码路径都会保持打包文件的映射,并使其文件描述符保持打开状态,这对无法删除打开的文件的系统来说是不友好的。
他们现在先关闭包装,然后再这样做

这就解决了问题

看一下,一个可能的解决方法(因为Git2.8还没有推出)是人为地提高gc.autoPackLimit

git config gc.autoPackLimit 10000
git fetch
git config gc.autoPackLimit 50 # default value

是否提到了应该缓解问题的方法():

确保子进程未继承临时文件句柄
事实上,上述内容在2018年第三季度的Git 2.19中已经得到了修复。

请参见“”

我也遇到了这个问题,但我发现这是一个超级编辑问题,因为我使用UE来组织和编辑我的eclipse工作区~~

可能是因为UE对特定文件的旧版本有一个句柄,Git无法解除它的链接


关闭UltraEdit后,问题再也没有发生过。

在我的例子中,这是由SimpLESS(更少的编译器)引起的。您必须在systray中关闭它。

这是一个特定于Windows的答案,因此我知道它与您无关。。。我只是为了将来的搜索者的利益才把它包括进来


在我的例子中,这是因为我从非提升的命令行运行Git。“以管理员身份运行”为我修复了它。

问题是因为您有一些程序处理这些文件。 我有一个建议,您应该使用解锁器查找正在处理它的程序:


我在Windows XP上遇到过这种情况,消息卡在一个循环中,并且可以通过回复来清除

通过关闭Git GUI,已清除卡在循环中的事件。(我在bashshell中运行git merge-I。)

发生其他事件可能是因为我的存储库中有大量文件。这主要发生在.cod文件上,我后来将其从版本控制中排除。(我确实有一个最初跟踪它们的理由。)我相信原因可能与Git使用文件句柄的速度有关


我想知道能否通过回复来清除问题是否与Windows相关,因为之前的两张海报都提到了Windows,而且没有人说他们与其他操作系统有问题。

尝试重新启动Apache或其他web服务器,因为它可能锁定了您的一些文件。

对我来说,这是因为VisualStudio正在尝试从pull重新加载所有更改的文件。使用visual studio刷新,然后在Windows上使用GitHub for Windows运行git gc,在运行git gc时,我在shell中遇到了类似的错误:

Unlink of file '.git/objects/pack/pack-0b40ae7eae9b83edac62e19c07ff7b4c175244f6.idx' failed. Should I try again? (y/n)

我通过关闭GitHub GUI解决了这个问题。

关闭了VisualStudio和Rubymine,没有再次出现错误。其中一个是罪魁祸首。

我打开并关闭了PHPStorm,一切正常

关闭IDE,然后执行git pull。它会起作用的

我也遇到了同样的问题,我关闭了窗口任务管理器中所有相关的程序。然而,它仍然不起作用。
有趣的是,我运行了“Git-rebase”而不是“Git-pull”,并且它工作了

以上所有答案对我都不适用,但我使用force选项运行git-gc命令,它解决了我的问题

'git gc--force'


[Windows 7,以管理员身份运行=>命令提示符]

尝试在管理模式下运行命令行编辑器,然后运行命令行编辑器。它有助于解决问题。:)

在我的例子中,我使用了一种旧方法来修剪导致问题的标记。我通过颠覆原作解决了这个问题:

git config --global --unset remote.origin.fetch '\+refs/tags/\*:refs/tags/\*'
然后添加此命令以修剪服务器上已删除的分支:

git config --global fetch.pruneTags true

我遇到了同样的错误,并通过关闭eclipse并在使用文件时再次拖动来解决它。

您是否检查了您是否有权写入该文件?在所述文件上运行right
chmod
和/或
chown
。我应该有权,否则我将使用chown/chmod