git 命令报错 Rename from .git/index.lock to .git/index failed. Should I try again?(y/n) 解决方案
出现这个问题了,可以重新拉取代码即可解决,其实也可以不用这么麻烦,这个错误主要是因为同时开了多个 git bash 窗口导致 .git 文件夹下的 index 文件和 index.lock 文件出现不一致导致的,正常来说这两个文件不会同时存在( ps:.git/refs/heads下也会出现相同的问题,涉及到的文件是 ${branch_name} 文件和 ${branch_name}.lock 文
出现这个错误 99.99% 是因为不小心同时开了多个 git bash 窗户导致的,当同时开多个 git bash 窗口需要先关闭之前的窗口,否则一旦出现这个问题就很难办。
出现这个问题了,可以重新拉取代码即可解决,其实也可以不用这么麻烦,这个错误主要是因为同时开了多个 git bash 窗口导致 .git 文件夹下的 index 文件和 index.lock 文件出现不一致导致的,正常来说这两个文件不会同时存在( ps:.git/refs/heads下也会出现相同的问题,涉及到的文件是 ${branch_name} 文件和 ${branch_name}.lock 文件,处理步骤也是类似的 )。
比如执行 git add 命令时,如果报 Rename from 'xxx/.git/index.lock' to 'xxx/.git/index' failed. Should I try again?(y/n) ,则 .git 文件夹下很可能同时有 index、index.lock,这时只需要把 index 文件删除( 以防万一,最好先备份下再删除 ),输入 y 回车即可成功执行 git add。还有一种情况,不知道是不是执行 git status,具体我忘了,会报类似 ".git/index.lock 已经存在,处理失败",这时候需要把 .git/index.lock 文件删除,输入 y 回车即可。
当执行 git commit 的时候,可能会报 .git/refs/heads 下的 ${branch_name} 文件、${branch_name}.lock 文件类似的错误,也是同上的处理步骤。
但是这样做以后,可能下次 git add 、git commit 还是会出现这种问题,除非重新拉代码,重新拉代码以后记得下次不要同时开多个 git bash 了。
我的电脑也不知道出了什么问题,即使重新拉了代码,每次执行 git bash 后关闭窗口,下次重新打开 git bash 窗口执行 git 命令还是会出现这种恶心的问题,我怀疑可能是我的文件系统或者权限出了问题,导致 xxx.lock 文件和 xxx 文件的一致性 git 无法帮忙维护好了。反正总之,如果报 "rename from xxx.lock to xxx failed",就把 xxx 文件删除;如果报 "xxx.lock already exist,...failed",就把 xxx.lock 文件删除,我都是用的这种方式,也总比每次都重新拉代码强。
附:
正常情况下 .git 文件夹和 .git/refs/heads 文件夹下文件的结构:
更多推荐
所有评论(0)