我们有一些带有公共/上传目录的项目,客户用它来存储图像/ 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之前保留文件?
答案 0 :(得分:0)
您正尝试将使用索引操作的--cached
与使用工作目录的--tree-filter组合在一起。
尝试
git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch public/uploaded"
您可能还想考虑添加" - prune-empty"。