文件在哪里?
怎么发现它的?
当你取消掉正在做的commit任务,并重提commit后,你会遇到如下错误:
fatal: Unable to create '.git/index.lock': File exists.
接下来我们将了解到:
- 这个文件的作用
- 如何解决上面的错误
功能及解决措施
在您的本地计算机上,Git存储库的工作内容直接放在隐藏的.git目录。这个目录存储了当前git仓库下,git命令行工具用到的所有种类的信息:分支、提交、以及repo中的子模块、hooks、日志等相关信息等(从本文的第一张截图中就可以看到.git的部分结构)。
每当你运行一个git进程时,git就会在.git目录创建一个index.lock文件。例如,在当前的git仓库里运行git add .来stage本地的修改点,git就会在git add执行的时候创建index.lock文件,命令执行结束后,删除该文件。
index.lock的作用:防止在当前运行的git过程以外去更改本地存储库的资源。从而避免了多个git进程同时进行操作更改导致的问题!
如果,同时执行两个git commit,将只有一个能正常运行,其他的进程将会报错。
如果某个进程退出/结束的时候除了问题,可能会导致index.lock文件没有被清除掉,此时,你需要将index.lock文件手动移除,或者采用命令:
rm .git/index.lock