无法从Git历史记录中删除目录

时间:2014-10-07 00:26:45

标签: git

我们有一些带有公共/上传目录的项目,客户用它来存储图像/ pdfs /等,它们存在于每个项目仓库中(添加为我们刚刚移动到/正在学习git)我现在希望添加到.gitignore。

我试图删除“开发”中单个项目中的目录。分支作为测试。

我使用的命令:

git filter-branch --tree-filter "git rm -rf --cached --ignore-unmatch public/uploaded"

生成输出:

rm 'public/uploaded/image_1.jpg'
rm 'public/uploaded/image_2.jpg'
rm 'public/uploaded/image_3.jpg'
rm 'public/uploaded/image_4.jpg'
rm 'public/uploaded/image_5.jpg'

然而结束于:

WARNING: Ref 'refs/heads/develop' is unchanged

为什么这个命令不起作用,如何从历史记录中成功删除目录,但在添加到.gitignore之前保留文件?

1 个答案:

答案 0 :(得分:0)

您正尝试将使用索引操作的--cached与使用工作目录的--tree-filter组合在一起。

尝试

git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch public/uploaded"

您可能还想考虑添加" - prune-empty"。