Chr*_*rys 30 git git-commit github-desktop
我正在开发一个 ASP.NET Core 项目。我正在尝试push使用 GitHub Desktop 提交到我的分支。但每次我尝试提交时,我都会收到此错误:
存储库中已存在锁定文件,该文件阻止此操作完成。
在互联网上搜索后,我找到的唯一解决方案是手动删除文件夹index.lock内的文件.git。
但是当我删除这个文件时,每次我尝试提交时它都会重新出现,使我无法提交。我已经尝试从 Visual Studio 提交,但也失败了。
谁能帮我?
小智 47
index.lock只需删除文件夹中名为 which 的文件即可.git。删除后,尝试再次提交。
脚步
.git您显示一个文件夹。只需index.lock从那里删除该文件,您就可以再次提交了。tor*_*rek 20
Git 用来index.lock知道某个 Git 进程\xe2\x80\x94 可能是这个(如果它刚刚创建了index.lock自己),或者其他某个 Git 进程\xe2\x80\x94 正忙于处理需要锁定 Git 索引的存储库的操作。当 Git 成功创建此锁定文件时,它就会继续其业务,更新各种内部数据库,直到完成。然后它会删除此锁定文件以表明它已完成,并且其他Git 命令现在可以开始、执行其操作并完成。
如果您的 Git 系统中存在错误,Git 命令可能会创建index.lock、开始执行其工作,然后崩溃,并留下锁定文件。在这种情况下,正确的做法是升级到无 bug 的 Git,以便问题不会再次出现,并删除该index.lock文件。(您可以按任一顺序执行此操作,但如果错误仍然存在,某些 Git 命令可能会留下伪造的锁。)由于测试套件相当广泛,这种错误现在在 Git 中很少见\xe2\x80 \x94在过去的糟糕日子里,这种情况更为常见,但现在它应该几乎不会发生了。
如果当 Git 正在进行其中一项操作时您的计算机本身崩溃(由于非 Git bug、电源故障或其他原因),Git 可能永远没有机会删除该文件index.lock。在这种情况下,您只需index.lock手动删除该文件即可。然而,在计算机崩溃后, Git 内部数据库的其他部分可能会因崩溃而损坏,因此明智的做法是运行git fsck. 即使在健康的系统上,该git fsck程序也会打印许多消息,因此不要对各种“悬空提交”或“悬空 blob”消息过于担心:这些只是提供信息。(一般来说,理想情况下,你的计算机本身不应该崩溃,你的电源不应该出现故障,人们不应该在 2021 年 2 月在德克萨斯州冻死,但世界并不总是理想的。)
(Windows 系统有时会看到某些防病毒软件的不良行为。在某些情况下,这种情况可能会自行消失。我避免使用 Windows,因此除了“避免使用 Windows”之外,我在这里没有具体的建议。)
\n最后,有一个问题最近已经成为一些人的普遍问题,因为云存储是如此有吸引力。1 具体来说,如果您将 Git 存储库(.git目录)存储在某种云存储系统中,甚至存储在跨虚拟机的共享磁盘或共享文件系统设置中,则尝试使用 Git 的不同代理之间会发生竞争。同步此存储区域可能会损坏您的 Git 存储库,包括复活虚假index.lock文件,甚至损坏 Git 的内部数据库。不要这样做!将 Git存储库保存在非共享的本地磁盘区域中。
1嗯,至少表面上是这样。确实有优点,但我个人赞成Lamport 对分布式系统的定义:分布式系统是这样一种系统,在该系统中,您甚至不知道其存在的计算机发生故障可能会导致您自己的计算机无法使用。
\n| 归档时间: |
|
| 查看次数: |
72293 次 |
| 最近记录: |