一、问题
git add / git commit报错,非权限、远程连接方式、端口协议和环境等问题导致。
1.常见标准报错内容
cmd
fatal: Unable to create 'xxx/.git/index.lock': File exists.
Another git process seems to be running in this repository...
remove the file manually to continue.
2.核心关键词(记住这 3 个)
注意:只要同时出现这三个,不用看别的,就是 Git 锁死了。
- index.lock
- File exists
- Unable to create
3.会触发这个报错的 Git 命令
任何操作 Git 暂存区的命令都会报这个错:
git addgit commitgit mergegit resetgit checkoutgit pullgit push
二、解决办法
有两种解决办法:
- 方法一:遇到直接删
.git/index.lock即可解决(对应项目目录下); - 方法二:命令删除
- cmd切换到对应目录下执行:del .git\index.lock
- PowerShell切换到对应目录下执行:rm .git/index.lock
- Mac/Linux切换到对应目录下执行:rm .git/index.lock
三、场景
-
最常见原因:Git 进程意外崩溃
- VS Code 突然卡死
- 终端被强制关掉
- 电脑蓝屏 / 重启
- 网络突然断开
结果:Git 死了,锁文件忘了删,一直留在那里。
-
第二个常见原因:同时开了多个 Git 工具
- 一边用 VS Code 提交
- 一边用终端 / Git Bash 提交
- 一边用 SourceTree 等图形工具
两个工具同时操作 → 第二个就会报 index.lock 已存在。
-
第三个原因:编辑器 / 插件在后台自动扫描 Git
VS Code、WebStorm 等编辑器会后台自动运行 Git 命令,有时候后台进程卡住,也会占着锁不释放。