解决Git stash pop 后Git出现Another git process seems to be running in this repository......错误信息

摘要

  当在dev开发分支开发新功能时,master分支出现紧急bug需要修复,命令git stash就可以暂存当前dev分支的代码改动,切换到master分支解决紧急bug。今天遇到一个git错误信息,是我在切回dev开发分支后把暂存的代码改动复原,但是代码复原后却无法提交,出现了git进程冲突的问题。具体错误信息如下:

 Another git process seems 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
may have crashed in this repository earlier:
remove the file manually to continue.

经过错误信息的解决方案调研,找到了具体有效的解决方案。

解决方法

   错误信息大意:git的进程已经在一个编辑器中被打开,请确保所有的进程都结束后再进行尝试,如果仍然失败,可能是上个运行中的git崩溃,请手动移除这个文件后再继续操作。

1.问题本质:

  windows对进程的管理有个上锁机制,正常情况下,进程运行 ==> 进程上锁 ==> 进程结束 ==> 进程解锁。可能是我在切换分支时不小心强制关闭了运行中的git,从而导致git崩溃,所以上锁的index.lock没有解锁而产生冲突。

2.解决方案:

  打开项目的文件夹,找到.git文件里的index.lock文件,错误信息中需要手动删除的文件就是这个index.lock文件。删除后再回到git继续操作命令,这样就完美的解决了git进程冲突问题。

总结

   在操作git命令时需要注意git进程的状态,最重要的就是操作git命令需要谨慎,就算是遇到在紧急的任务,也需要心平气和的去解决,心急吃不了热豆腐。