在没有子目录的Git筛选器分支中选择目录

在没有子目录的Git筛选器分支中选择目录,git,Git,我想将一个目录从现有的git repo提取到一个新的repo中 我正在使用 git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter modules/plugins -- --all 如图所示,它工作得很好 现在我有了一个层次结构 modules/ plugins/ foo/ bar/ baz/ 过滤时,我基本上需要modules/plugins/*(上面的git命

我想将一个目录从现有的git repo提取到一个新的repo中

我正在使用

git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter modules/plugins -- --all
如图所示,它工作得很好

现在我有了一个层次结构

modules/
  plugins/
     foo/
     bar/
     baz/
过滤时,我基本上需要
modules/plugins/*
(上面的git命令就是这样做的),但不需要
modules/plugins/bar

在这样一个
git过滤器分支
表达式中,这可能吗?如果是,怎么做

按照上面的表述,我的新回购协议以

foo/
bar/
baz/

如何保持
模块/插件/
部分的位置?

因为我找不到传递类似(虚构的)
--子目录过滤器模块/插件之类的表达式的方法,!modules/plugins/bar
我首先运行了
git过滤器分支
,然后:

for B in $BRANCHES; do git checkout -f  $B
  for P in "foo","baz"
  do
    git rm -r --cached $P
  done
  git commit -m "Plugins removed"
done
其中
$branchs
包含在via之前“激活”的所有分支的列表

for B in $BRANCHES ; do  git branch -t $B origin/$B; done

也许可以调整一下:?+Max,谢谢。第二部分是蛋糕上的糖霜