我不小心使用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
命令造成的问题。 - CB Baileygit reset --hard
并不是正确的答案,实际上会删除内容。这会让用户感到困惑,就像我一样。 - user2210287