如何在git中取消转储已删除文件

时间:2019-01-28 18:50:08

标签: bash git github

我知道这个问题已经在其他线程中得到解答。但是,我的问题(我相信)是独一无二的。

背景故事:我是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。

它给了我一个警告,指出进程仍在打开。我忽略了它,假设它们在退出外壳时会终止。 错误 。之后,我无法合并分支,切换分支,无法删除文件,无法取消暂存文件,没有它给我附加的错误,我将无法做任何事情:enter image description here

我也尝试删除commit文件,但遇到相同的错误。我现在不知道该怎么办-我什至尝试卸载&不会卸载,因为该过程仍在打开且没有强制终止。

1 个答案:

答案 0 :(得分:4)

  

它给了我一个警告,指出进程仍在打开。我忽略了它,假设它们在退出外壳时会终止。不对。

Windows has mandatory file locking,这意味着如果进程打开了文件,则无法删除它。保持index.lock的状态,关闭外壳可能不会杀死它。

没有看到您以前的Git历史记录,我无法说出该过程可能是什么。可以使用index.lock挂起的任何东西。 git commit使用的编辑器进程可能是罪魁祸首。您可以find the process which is holding index.lock open并杀死它。

或者您可以尝试将其关闭然后再打开:即。重新启动计算机,以确保所有挂起的进程都已停止。