使用 msysgit 1.7.0.2,执行git rebase -i
时,它会挂起且没有任何信息。
在输入ctrl+c后,我可以看到
'unlink of file failed, should I try again (y/n)?'
然后我尝试了 git rebase --abort
,但是得到了同样的错误信息。现在它卡在了rebase过程中间。这个错误似乎是由只读文件引起的。
有没有办法解决这个问题?
使用 msysgit 1.7.0.2,执行git rebase -i
时,它会挂起且没有任何信息。
在输入ctrl+c后,我可以看到
'unlink of file failed, should I try again (y/n)?'
然后我尝试了 git rebase --abort
,但是得到了同样的错误信息。现在它卡在了rebase过程中间。这个错误似乎是由只读文件引起的。
有没有办法解决这个问题?
你尝试过使用 set GIT_ASK_YESNO=false
吗?
这个Google group 的帖子提到了最近的mingw进展:
使用新的环境变量
GIT_ASK_YESNO
支持Windows上出现文件被使用时unlink
,rename
或rmdir
失败的回退操作。
您正在使用哪个确切版本的Git for Windows?
注意:msysgit设置与“Git for Windows”设置不同,另请参阅“msysgit和cygwin+ git之间的区别?”
git 2.8.4 (2016年6月)提到了问题755,这也应该能缓解这个问题(提交2db0641):
确保临时文件句柄不会被子进程继承
还可以参阅Git 2.19(2018年第三季度):“Git - Unlink of file .idx and .pack failed (The only process owned handle to this file is git.exe)”。
我不确定这是否适用于您的情况,但我最近遇到了与1.7.10.msysgit.1类似的情况(与Ubuntu服务器上的网络共享对话)。在我的情况下,一个失败的合并导致多个对象由root所有,并具有-r--rwSr--权限。简单的SSH登录和
sudo chown steve: .git/*
解决了一个问题(对我的用户而言 - 除非你叫史蒂夫,否则你需要将其更改为你的用户名!),并且
chmod -R 0755 .git/*
修复了其他的问题。
可能有一个文件实例导致了git中的错误弹出,请关闭所有其他文件实例,然后在git中按“y”键。
希望它能解决问题!