Von*_*onC 202
这通常意味着一个进程仍在使用该特定文件(仍然有一个句柄)
(在Windows上,ProcessExplorer
擅长跟踪那种进程)
尝试关闭其他程序,然后再试一次git pull
.
请注意,您可以使用GIT_ASK_YESNO
变量替代.
2019年1月更新:
这应该更加固定,使用Git 2.21(2019年第一季度),因为" git gc
"和" git repack
"没有关闭他们在删除之前发现不需要的打开包文件,这在无法删除打开文件的平台上无效.
这已得到纠正.
见Johannes Schindelin()提交5bdece0(2018年12月15日).(由Junio C Hamano合并- -在提交5104f8f,2019年1月18日)dscho
gitster
gc
/repack
:需要时发布包在Windows上,如果进程仍保留句柄,则无法删除文件或重命名文件.
为了解决这个问题,我们介绍了这个close_all_packs()
功能.早些时候,我们确保包装在
git gc
产生之前就已经发布,以防gc
需要移除不再需要的包装.但是这位开发人员忘记了
gc
自己也需要放弃包装,例如在通过--aggressive
选项整合所有包装时.同样,
git repack -d
想要删除过时的包,因此也需要关闭所有包手柄.
2016年1月更新
这应该在Git 2.8(2016年3月)中修复(见下面的Git 2.19,Q3 2018)
请参阅Johannes Schindelin()提交d562102,提交dcacb1b,提交df617b5,提交0898c96(2016年1月13日).(由Junio C Hamano合并- -在提交3c80940,2016年1月26日)dscho
gitster
fetch
:垃圾收集前发布包文件在自动gc'ing之前,我们需要确保包文件被释放,以防需要重新打包和垃圾收集.
gc --auto
在退出之前运行" "的许多代码路径保持打包的文件包并将文件描述符保留为打开,这对于无法删除打开的文件的系统不友好.
他们现在关闭包装,然后再这样做.
这解决了git-for-widows
问题500.
看看用于验证新方法的测试,可能的解决方法(因为Git 2.8还没有出来)将是人为提升gc.autoPackLimit
.
git config gc.autoPackLimit 10000
git fetch
git config gc.autoPackLimit 50 # default value
Run Code Online (Sandbox Code Playgroud)
git 2.8.4(2016年6月)确实提到了问题755,它也应该缓解这个问题(提交2db0641):
确保子进程不继承临时文件句柄
实际上,上面提到的git-for-windows
500问题实际上是用Git 2.19,Q3 2018修复的.
参见" Git - 文件的取消链接.idx
和.pack
失败(该文件唯一拥有的进程句柄git.exe
) "
Nei*_*ilD 56
这是一个Windows特定的答案,所以我知道它与你无关......我只是为了未来的搜索者的利益而包含它.
在我的情况下,这是因为我从一个非提升的命令行运行Git."以管理员身份运行"为我修复了它.
Pau*_*icz 26
对我来说,这是因为Visual Studio试图从拉动中重新加载所有已更改的文件.让visual studio刷新,然后运行git gc
.
在使用GitHub for Windows的Windows上,运行时shell中出现类似错误git gc
:
Unlink of file '.git/objects/pack/pack-0b40ae7eae9b83edac62e19c07ff7b4c175244f6.idx' failed. Should I try again? (y/n)
Run Code Online (Sandbox Code Playgroud)
我通过关闭GitHub GUI解决了这个问题.
归档时间: |
|
查看次数: |
84713 次 |
最近记录: |