为什么 vscode 在切换分支时有时会创建 index.lock?具体来说,如果我刚刚打开的上一个分支在 package-lock.json 中有一些东西,而我只是希望它重置做了一个git reset --hard
?仅供参考,我使用的是节点 8。这是一个屏幕截图:
问问题
123 次
1 回答
2
Gitindex.lock
在更新索引时创建。(事实上,index.lock
锁定文件本身就是正在构建的新索引,一旦完成就会被交换到位。但这是一个实现细节。)一旦文件完成,Git 就会自动删除该文件(实际上,通过将其交换到位)完成更新。那时,其他 Git 命令可以自由锁定然后更新索引,当然,一次一个。
如果 Git 命令crash,它可能会保留锁定文件(由于它也是新索引,因此可能不完整,因此实际上没有用)。在这种特殊情况下,没有正在进行的 Git 命令来完成,因此解锁并允许下一个 Git 命令运行。
如果文件在某一时刻存在,但在您下次尝试时不存在,这意味着某些 Git 命令仍在运行(和更新),而您太不耐烦了。:-) 如果您混合使用不同的 Git 命令(和/或 GUI 等界面),您可能必须手动协调以避免这些运行时冲突。任何一个接口都应该在内部与自己协调。
于 2017-06-29T18:36:05.607 回答