我知道这个问题已经在其他线程中得到解答。但是,我的问题(我相信)是独一无二的。
背景故事:我是git bash新手。我直到最近才开始使用它,因此,做了很多愚蠢的事情。我创建了一个测试文件doSomethingThatReturnsMaybe()
.flatMapSingleElement(obj-> {
return doSomethingThatReturnsSingle();
})
.switchIfEmpty(doSomethingElseThatReturnsSingle())
.subscribe(obj -> LOG.info(obj),
err -> LOG.err("", err);
,并在AWACSfile.txt
上进行了暂存。然后我做了git add
,这是问题开始的地方。
它打开了一个新屏幕,并提示我输入我没有添加到git commit
行中的笔记(或登台时的其他要求)。那时我不知道该怎么办, 试图退出bash shell。
它给了我一个警告,指出进程仍在打开。我忽略了它,假设它们在退出外壳时会终止。 错误 。之后,我无法合并分支,切换分支,无法删除文件,无法取消暂存文件,没有它给我附加的错误,我将无法做任何事情:
我也尝试删除commit
文件,但遇到相同的错误。我现在不知道该怎么办-我什至尝试卸载&不会卸载,因为该过程仍在打开且没有强制终止。
答案 0 :(得分:4)
它给了我一个警告,指出进程仍在打开。我忽略了它,假设它们在退出外壳时会终止。不对。
Windows has mandatory file locking,这意味着如果进程打开了文件,则无法删除它。保持index.lock
的状态,关闭外壳可能不会杀死它。
没有看到您以前的Git历史记录,我无法说出该过程可能是什么。可以使用index.lock
挂起的任何东西。 git commit
使用的编辑器进程可能是罪魁祸首。您可以find the process which is holding index.lock
open并杀死它。
或者您可以尝试将其关闭然后再打开:即。重新启动计算机,以确保所有挂起的进程都已停止。