【发布时间】:2011-10-29 12:55:26
【问题描述】:
我不小心添加了很多使用git add -A的临时文件
我设法使用以下命令取消暂存文件并设法删除脏索引。
git ls-files -z | xargs -0 rm -f
git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached
以上命令在git help rm 中列出。但遗憾的是,即使我提供了缓存选项,我的文件也在执行时被删除。如何清除索引而不丢失内容?
如果有人能解释这种管道操作的工作方式,那也会很有帮助。
【问题讨论】:
-
rm -f不是 git 命令,也没有--cached选项。在您执行git rm之前,您的本地文件已被删除,所以我认为您不能合理地责怪git rm。 -
@sarat,请考虑将正确答案更改为 Ian Maddox 高度支持的答案,因为
git reset --hard不是正确答案并且实际上会删除内容。这会让用户感到困惑——就像我一样。 -
@sarat 正如 Marco 所说,继续。此页面获得大量流量。
-
@MarcoPashkov & Ross 谢谢大家。完成。
标签: git version-control