2015-08-19 252 views
0

我试图删除单个文件,但git(v1.9.1)拒绝将它们暂存,因为他们用来存放的文件夹已被删除。如何在已删除的文件夹中删除已删除的文件

我不能使用git add -u,因为它会分阶段全部修改和删除的文件。如果我做

git add -u /path/to/deleted/folder/afile

git rm /path/to/deleted/folder/afile

我得到:

致命的:无法切换到 '/路径/要/删除/文件夹/':无这样的文件或 目录

这是因为/path/to/deleted/folder/不再存在。

我不明白为什么git需要切换到一个目录,当被告知阶段删除的文件,并不得不手动重新创建每个删除的文件夹只是让git知道,是的,该文件真的走了似乎疯了。

有没有办法让git暂存已删除的文件而不需要路径存在?

+0

'git的RM --cached /路径/到/删除/文件夹/ afile'不正是你想要什么。以下是帮助中的描述:“--cached 使用此选项可以仅对索引进行取消和删除路径。不管是否修改了工作树文件,都将被单独保留。 – Wolf

+0

@Wolf是的,这也是我的想法,但它仍然返回关于丢失的文件夹的错误,并拒绝阶段删除的文件。 – adelphus

+0

你能够安装更新版本的git吗?你也可以尝试添加路径分隔符,看看是否有助于'git rm -/path/to/deleted/folder/afile'。这符合当地的预期,但我使用2.5。 – R0MANARMY

回答

0

随着狼和ROMANARMY的荣誉,升级到2.5允许git rm成功。

万一别人在乎,这里就是我升级我的Ubuntu 14.04的默认混帐到2.5:

$ sudo add-apt-repository ppa:git-core/ppa 
$ sudo apt-get update 
$ sudo apt-get install git 

$ git --version 
git version 2.5.0 
相关问题