一、引言:问题回忆
这几天,我同时在使用vs2017自带的git管理工具和git bash命令行工具对于同一个工作区进行了git操作管理。
其中,当我在vs2017中对文件进行了更改,突然脑洞大开,想要使用git bash使用命令行进入到工作区使用命令行git commit
提交修改,此时我输入了git commit结果一不小心点击了右上角的结束按钮,导致此git进程崩溃。
然后进入了vs2017的git管理工具,此时想要提交修改,发现出现了如下的提示信息
Another git process semms to be running in this repository, e.g. an editor opened by ‘git commit’. Please make sure all processes are terminated then try again. If it still fails, a git process remove the file manually to continue.
大概意思就是说,当前已经有了一个编辑器打开了“git commit”指令,请关闭所有git相关的进程重试,否则,请手动删除那个文件。
二、问题解决
根据我们所了解到的,windows对于进程的同步互斥管理,是有资源上锁机制的。猜测这里肯定是有进程对某资源进行了加锁,但是由于进程突然崩溃,未来得及解锁,导致其他进程访问不了。
这里根据vs2017的git管理工具的提示信息,打开文件夹选项,打开显示隐藏文件,进入工作区目录下的隐藏文件.git,其中的index.lock文件删除掉,然后重新打开git bash进程,问题解决。
三、总结
Git原则上是支持多进程同步操作资源的,但是如果出现了崩溃,就会出现这样那样的问题,建议同一时间还是只打开一个Git进程进行版本管理比较好。