我正在尝试git rm
用作过滤器分支的一部分。我想删除目录*/*/dir1
,但什么也没发生。我正在使用的命令是:
git filter-branch --tag-name-filter cat --index-filter "git rm -r --cached --ignore-unmatch */*/dir1" --prune-empty -f -- --all
命令
find . -wholename "*/*/dir1"
显示很多匹配项。
我怎样才能删除这些目录?
更新:我正在尝试从历史记录中删除这些文件夹。
解决方案:
结合@j6t 和@Sam Gleske 的答案,这是我的解决方案:
git filter-branch --tag-name-filter cat \
--index-filter 'git ls-files | grep -E "^([^/]+/){2,3}dir1" |
xargs -I {} --no-run-if-empty git rm -r --cached "{}"' \
--prune-empty -f -- --all