Windows 如果存在git index.lock,我是否可以安全地删除它,或者是否需要执行更多操作来验证完整性?
在过去的几周里,我多次收到一条关于index.lock存在的消息 删除该文件是中提到的解决方案 删除该文件是否足够,或者是否需要执行其他操作(是否有方法验证完整性等?) 这是在安装了git命令行工具、Ortoisegit和SourceTree的Windows x64系统(完全修补)上安装的。没有人提到索引锁的作用。Windows 如果存在git index.lock,我是否可以安全地删除它,或者是否需要执行更多操作来验证完整性?,windows,git,Windows,Git,在过去的几周里,我多次收到一条关于index.lock存在的消息 删除该文件是中提到的解决方案 删除该文件是否足够,或者是否需要执行其他操作(是否有方法验证完整性等?) 这是在安装了git命令行工具、Ortoisegit和SourceTree的Windows x64系统(完全修补)上安装的。没有人提到索引锁的作用。 然而,它记录在Git发行版的文件“”下 删除那个文件就足够了吗 在这些文档之后,似乎删除就足够了 锁文件API lockfile API有两个用途: 互斥 当我们写出一个新的索引
然而,它记录在Git发行版的文件“”下 删除那个文件就足够了吗 在这些文档之后,似乎删除就足够了 锁文件API lockfile API有两个用途:
- 互斥
当我们写出一个新的索引文件时,首先创建一个新文件
,将新内容写入其中,并将其重命名为最终目标$GIT\u DIR/index.lock
。我们尝试使用O_EXCL创建$GIT\u DIR/index
文件,这样当其他人已经尝试更新索引文件时,我们就可以注意到并失败$GIT_DIR/index.lock
- 自动清除积垢
创建“锁定”文件后,我们可能会决定
,并希望确保删除尚未提交到最终目标的文件。die()
这是通过记住我们在链表中创建的锁文件并从
处理程序中清除它们来实现的。当程序因信号而终止时,未完成的锁文件也会被删除atexit(3)
root
”)。唯一的问题是您的Windows工具之一要:
- 在系统帐户而不是用户帐户下运行
- 或者启动暂存文件(意味着创建一个索引并创建index.lock文件),并使用另一个工具来启动暂存以及同一repo中的文件
O_exc
锁定方案下创建的,可能无法创建该文件,因为它被另一个PID锁定。作为: 如果文件存在并且指定了
O_create
,则O_EXCL
所做的唯一事情就是导致调用失败
2015年8月更新git 2.6+(2015年第三季度) 参见,,…(巨大列表),(2015年8月10日)作者。
(于2015年8月25日合并) tempfile API允许创建、删除临时文件,并以原子方式重命名这些文件。
程序结束时仍处于活动状态的临时文件将自动清理。
Lockfiles是在这个API之上构建的。现在,该文档文件不再存在于repo中,但您可以在@DrewNoakes上阅读头文件中的文档,谢谢。我已经恢复了到api-lockfile.txt的链接,在阅读之后,完成了
git log-1--Documentation/technical/api lockfile.txt
并找到了它。