说我有我叫混帐repostiory文件foo
。
假设它已经与被删除rm
(没有git rm
)。 然后git的状态会显示:
Changes not staged for commit:
deleted: foo
如何策划这出单个文件删除?
如果我尝试:
git add foo
它说:
'foo' did not match any files.
说我有我叫混帐repostiory文件foo
。
假设它已经与被删除rm
(没有git rm
)。 然后git的状态会显示:
Changes not staged for commit:
deleted: foo
如何策划这出单个文件删除?
如果我尝试:
git add foo
它说:
'foo' did not match any files.
使用git rm foo
上演删除该文件。 (这也将删除该文件系统中的文件,如果它以前没有被删除。它可以,当然,从git的恢复,因为它是在先前检查。)
对阶段为删除该文件,而不从文件系统删除,使用git rm --cached foo
你可以做git add -u
。
这将有助于如果你想删除多个文件,而不做git rm
为他们每个人。
要阶段,你可以使用所有手动删除的文件:
git rm $(git ls-files --deleted)
要添加别名这个命令git rm-deleted
,运行:
git config --global alias.rm-deleted '!git rm $(git ls-files --deleted)'
添加的所有准备删除的文件
git status -s | grep -E '^ D' | cut -d ' ' -f3 | xargs git add --all
谢谢检查,以确保
git status
你应该是好去
由于Git的2.0.0, git add
也将上演文件删除。
Git的2.0.0文档-蹦加
<pathspec> ...
要添加的文件与内容。 Fileglobs(如* .c)中可以提供给所有添加>匹配的文件。 另外一家领先的目录名称(例如目录添加目录/文件1和dir /文件2)可以提供给更新索引的目录的当前状态匹配作为一个整体(例如指定目录会记录不只是一个文件目录/文件1修改在工作树,文件目录/文件2添加到工作树,但也是一个文件目录/文件3从工作树中删除需要注意的是旧版本的Git用于忽略删除的文件;使用,如果你--no-all选项要添加或修改的新文件,但忽略删除的。
您可以使用
git rm -r --cached -- "path/to/directory"
上演了一出删除的目录。