使用 msysgit 1.7.0.2 ,在执行git rebase -i
时,它会挂起并且没有消息。
输入 ctrl + c 后,我可以看到
'unlink of file failed, should I try again (y/n)?'
然后我尝试了git rebase --abort
,但收到了同样的错误消息。所以现在它停留在rebase过程的中间。此错误似乎是由只读文件引起的。
有什么方法可以解决这个问题吗?
答案 0 :(得分:21)
您是否尝试使用set GIT_ASK_YESNO=false
?
这Google group thread在最近的mingw演变中提到它:
利用新的环境变量
GIT_ASK_YESNO
来支持最近实施的回退,以防{J} {1}},unlink
或rename
在Windows上使用的文件失败。
您使用的是什么版本的Git for Windows? 注意:msysgit setup is not the same than the "Git for Windows" setup,另请参阅“Different between msysgit and cygwin + git ?”)
git 2.8.4 (June 2016)确实提到issue 755,这也应该缓解这个问题(commit 2db0641):
确保子进程不继承临时文件句柄
另见Git 2。19(Q8 2018):“Git - Unlink of file .idx and .pack failed (The only process owned handle to this file is git.exe)”。
答案 1 :(得分:3)
我不知道它是否适用于您的情况,但我刚刚遇到类似1.7.10.msysgit.1的情况(与Ubuntu服务器上的网络共享交谈)。在我的例子中,一个失败的合并使root拥有了几个拥有权限-r-rwSr--的对象。一个简单的SSH登录和
sudo chown steve: .git/*
解决了一个问题(对于我的用户 - 除非你被称为史蒂夫,否则你需要将其更改为你的用户名!),
chmod -R 0755 .git/*
修复了另一个。
答案 2 :(得分:0)
文件的某个实例可能会导致错误在git中弹出,请尝试关闭文件的所有其他实例,然后在git中按“ y”。
希望它能解决问题!