我经常遇到这样一种情况,我们团队中的某个人在没有先向他们的项目中添加 .gitignore 的情况下推送初始提交。这会导致一堆文件最终出现在我们不想跟踪的 repo 中。
git ls-files -i --exclude-from=.gitignore
给我一个被 .gitignore 忽略的文件列表
和
git rm --cached <file>
让我从 repo 中一次删除一个文件,但将它们保存在我的工作目录中(我想要的)
有没有一种方法可以将文件列表从管道传输ls-files
到rm --cached
(或其他一些允许我从我的存储库中删除跟踪的、忽略的文件的方法)?
我们的一位团队成员编写了一个使用正则表达式来执行此操作的 shell 脚本,但我正在寻找一个仅命令行的解决方案(如果存在的话)。