问题:
今天,在用windows自带的命令行工具cmd和git bash命令行工具同时对同一个工作区进行了git操作管理,用git的时候出现了这样的问题:
cmd:
git bash:
准备提交的时候出现如下的提示信息:
大概意思是:另一个Git进程似乎在这个存储库中运行,例如。通过“Git提交”打开的编辑器。请确保所有进程终止,然后再试一次。如果仍然失败,则使用Git进程可能更早地在这个存储库中崩溃了:手动删除文件以继续。
解决办法:
根据我们所了解到的,windows对于进程的同步互斥管理,是有资源上锁机制的。猜测这里肯定是有进程对某资源进行了加锁,但是由于进程突然崩溃,未来得及解锁,导致其他进程访问不了。
根据提示,打开文件夹选项,打开显示隐藏文件,进入工作区目录下的隐藏文件.git,其中的index.lock文件删除掉,然后重新打开git bash或者cmd,再重新提交的时候就没有问题了,问题解决。
总结:
Git原则上是支持多进程同步操作资源的,但是如果出现了崩溃,就会出现这样那样的问题,建议同一时间还是只打开一个Git进程进行版本管理比较好。