取消链接文件失败

我试图做一个混帐拉,我得到以下错误:

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

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

这通常意味着一个进程仍在使用该特定的文件(仍然有一个句柄)
(在Windows上, ProcessExplorer擅长跟踪这种过程)

尝试closures你的其他程序,并再次尝试你的git pull

请注意,您有一个替代GIT_ASK_YESNOvariables 。


2016年1月更新

这应该在Git 2.8(2016年3月)

请参阅由Johannes Schindelin( dscho ) 提交的d562102 , 提交dcacb1b , 提交df617b5 , 提交0898c96 (2016年1月13日) 。
(由Junio C gitstergitster合并-在3c80940 ,2016年1月26日提交 )

fetch :在垃圾收集之前释放包文件

在自动化之前,我们需要确保包文件在需要重新包装和垃圾收集的情况下被释放。

许多代码path在退出保存的文件包文件之前运行“ gc --auto ”,并将文件描述符保留为打开状态,这对于无法删除已打开文件的系统不太友好。
他们现在先closures包装。

修正了git-for-widows问题500 。

看看用于validation新方法的testing ,一个可能的解决方法(因为Git 2.8还没有出来)将是人为地提高gc.autoPackLimit

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

git 2.8.4(2016年6月)确实提到了问题755 ,也应该减轻问题( 提交2db0641 ):

确保临时文件句柄不被subprocessinheritance

这是一个Windows特定的答案,所以我知道这与你无关……我只是为了未来的search者的利益而包括它。

就我而言,这是因为我从一个非提升的命令行运行Git。 “以pipe理员身份运行”为我解决了这个问题。

对我来说,这是因为Visual Studio试图重新加载拉的所有更改的文件。 有视觉工作室刷新,然后运行git gc

在使用GitHub for Windows的Windows上,运行git gc时在shell中出现类似的错误:

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

我通过closuresGitHub GUI来解决这个问题。

closuresVisual Studio和Rubymine并没有再次得到错误。 其中之一是罪魁祸首。

这在我的情况下是由LESS编译器SimpLESS引起的。 你必须在系统中closures它。

尝试重新启动Apache或其他Web服务器,因为它可能已经locking了一些文件。

closures你的IDE然后做git pull 。 它会工作。

我也有这个问题,但是我发现这是UltraEdit,因为我用UE来组织和编辑我的eclipse工作区。

也许是因为UE有旧版本的特定文件,Git无法解除链接。

closuresUltraEdit后,问题再也没有发生过。

问题是因为你有一些处理这些文件的程序。 我有一个build议,你应该使用Unlocker来find正在处理它的程序:

解锁

我在Windows XP上发生过这种情况,消息被卡在一个循环中,可以通过回复来清除。

通过closuresGit-GUI清除卡住的环路。 (我在bash shell中运行git merge -i。)

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

我想知道这个能够被清除的答复问题是否与Windows有关,因为之前的两个海报已经提到了Windows,并且没有人说他们在其他操作系统上有问题。

我有PHPStorm打开,closures,一切都很好。

我有同样的问题,我从窗口任务pipe理器closures所有相关的程序。 但是,它仍然没有工作。 有趣的是我跑了“Git rebase”而不是“Git pull”,它的工作!