繁体   English   中英

Git rebase导致“unlink of file failed”错误

[英]Git rebase causing “unlink of file failed” errors

通常当我做一个git pull --rebase我得到这种输出:

> git pull --rebase
Auto packing the repository in background for optimum performance.
See "git help gc" for manual housekeeping.
Enumerating objects: 249988, done.
Counting objects: 100% (249988/249988), done.
Delta compression using up to 12 threads.
Compressing objects: 100% (62830/62830), done.
Writing objects: 100% (249988/249988), done.
Total 249988 (delta 179539), reused 249988 (delta 179539)
Unlink of file '.git/objects/pack/pack-00a0089ffcdc3d5ea5d2cc81042b741ba6d55a7d.idx' failed. Should I try again? (y/n)

对于每个被假定锁定的文件,问题重复一百次左右。

引用的文件可以是random-ish,但它始终是.git/objects/pack/目录中的文件。 据我所知,没有其他软件可以锁定这些文件。

似乎这个问题主要发生在切换分支后。

我在Windows 10上使用Git 2.18。

我不想深入研究WLS或git-bash。 虽然这将是一个让rebase工作的解决方法,但我最终想要在常规命令提示符下摆脱这个问题。

另一种解决方法是首先执行git gc 该命令以某种方式能够释放这些文件并使后续命令按预期工作。

这个问题似乎与我的问题重复,但是在Git 2.8中提到了一个修复(现在我们已经远远超出了它),海报使用的是git-bash,这是一个不同的场景。

此消息表示系统上的某些其他进程正在使用这些文件。 您可能有一个编辑器插件或其他使用Git或libgit2访问这些文件的软件,Windows不允许在使用它们时将其删除。 这是Windows和Win32 API的限制,它不适用于Unix系统或WSL。

您可以关闭或终止其他进程,重新启动或切换到使用WSL,这将允许删除正在使用的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM