假设我运行git status并进行了删除、修改和其他更改。
如何仅暂存已删除的文件?
我已经在这篇文章中尝试过答案:
git ls-files --deleted | xargs 混帐添加
但这似乎在 Windows 下不起作用。
假设我运行git status并进行了删除、修改和其他更改。
如何仅暂存已删除的文件?
我已经在这篇文章中尝试过答案:
git ls-files --deleted | xargs 混帐添加
但这似乎在 Windows 下不起作用。
Windows 不提供该xargs
命令,这使得关于如何解决此问题的大多数建议都毫无用处,包括在git add
或的文档页面中提供的建议git rm
。
但是文档git rm
建议使用一个命令来生成可以解决此问题的命令列表。命令是:
git diff --name-only --diff-filter=D --line-prefix="git rm "
它生成从工作树中删除的文件列表,每行一个文件,并在每个文件名前加上git rm
.
在您按原样运行它并检查其输出后,您可以通过附加到命令行将其输出重定向到一个.cmd
文件(比如说) ,然后运行生成的脚本()来实现您的目标。然后您可以删除脚本 ( );它不是一个可重复使用的通用工具,而只是一个从索引中删除某个文件列表的一次性脚本。rm-deleted.cmd
> rm-deleted.cmd
rm-deleted.cmd
del rm-deleted.cmd
阅读更多关于git diff
.
我手头没有 Windows 实例,也不知道 Git 如何处理名称中包含空格的文件。我怀疑此脚本无法对此类文件进行操作。如果您的文件或目录名称中包含空格,您应该将生成的脚本打开到编程编辑器中,替换所有出现的git rm
withgit rm "
并在每行后附加引号 ( "
)(您需要一个编程编辑器才能搜索和 -替换行尾)。
通过将文件名括在引号中,Windows 命令提示符将它们正确传递给git rm
Git 能够识别文件并将它们从索引中删除。