我本地git存储库中的一个文件出现了问题.当我试图更改分支时,它说:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Run Code Online (Sandbox Code Playgroud)
这意味着什么?
我正在尝试做一个git pull我得到以下错误:
取消链接文件'lib/xxx.jar'失败.我应该再试一次吗?(Y/N)
无论我选择y还是n,都无法进入我可以拉或推的状态.
使用msysgit 1.7.0.2时git rebase -i,它会挂起并且没有消息.
进入后ctrl+c,我可以看到
'unlink of file failed, should I try again (y/n)?'
Run Code Online (Sandbox Code Playgroud)
然后我试过git rebase --abort但得到了同样的错误信息.所以现在它停留在rebase过程的中间.此错误似乎是由只读文件引起的.
有什么方法可以解决这个问题吗?
运行版本1.9.4.msysgit.0的git,我得到了提到的错误(S)几乎每次运行时git gc在命令行或通过git gui时,它提示我"压缩松散物":
Counting objects: 1110956, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (269562/269562), done.
Writing objects: 100% (1110956/1110956), done.
Total 1110956 (delta 636114), reused 1110956 (delta 636114)
Unlink of file '.git/objects/pack/pack-207f1feb5376880778637c ... 8371cea62.pack'
failed. Should I try again? (y/n) n
Checking connectivity: 1110956, done.
Run Code Online (Sandbox Code Playgroud)
唯一的解决方案似乎是n针对每个锁定的文件 - 正如此线程所建议的那样:
简短的回答:点击'n'来完成所有这些,然后手动运行"git gc".
线程还暗示......
问题是文件由试图执行gc的父git.exe保持打开状态.
...当看过程树时,完全看似合理:

我的问题是,我能做些什么来防止这种情况发生?每天多次这样做真的很烦人......为什么会这样?它是一个git/w32唯一的bug吗?
更新1:澄清 - 在n按照描述多次点击后,git gc完成并且本地存储库是"干净的",即重新运行git …