0

为什么 vscode 在切换分支时有时会创建 index.lock?具体来说,如果我刚刚打开的上一个分支在 package-lock.json 中有一些东西,而我只是希望它重置做了一个git reset --hard?仅供参考,我使用的是节点 8。这是一个屏幕截图:

在此处输入图像描述

4

1 回答 1

2

Gitindex.lock在更新索引时创建。(事实上​​,index.lock锁定文件本身就是正在构建的新索引,一旦完成就会被交换到位。但这是一个实现细节。)一旦文件完成,Git 就会自动删除该文件(实际上,通过将其交换到位)完成更新。那时,其他 Git 命令可以自由锁定然后更新索引,当然,一次一个。

如果 Git 命令crash,它可能会保留锁定文件(由于它也是索引,因此可能不完整,因此实际上没有用)。在这种特殊情况下,没有正在进行的 Git 命令来完成,因此解锁并允许下一个 Git 命令运行。

如果文件在某一时刻存在,但在您下次尝试时不存在,这意味着某些 Git 命令仍在运行(和更新),而您太不耐烦了。:-) 如果您混合使用不同的 Git 命令(和/或 GUI 等界面),您可能必须手动协调以避免这些运行时冲突。任何一个接口都应该在内部与自己协调。

于 2017-06-29T18:36:05.607 回答