我一直在关注这个问题Detach subdirectory into separate Git repository的答案,并且只在一个分支上的简单子目录取得了一些成功,但现在我遇到了一个遍布多个分支的子目录,所以很简单
git filter-branch --subdirectory-filter SUBDIRECTORY HEAD
不能胜任。
我是否必须切换到每个分支并运行filter-branch命令,或者是否有可以在整个历史记录中进行空白更改的内容?
答案 0 :(得分:7)
命令末尾的HEAD
指定要处理的引用。您可以为其指定任意数量的其他命令,包括--all
以指定绝对所有内容,--branches
仅指定分支,或--remotes
以指定只有遥控器。您可能必须使用--
为这些选项添加前缀,以告诉filter-branch这些是rev-list args。请注意,--all
将尝试显式处理标记,这可能不是您想要的。您可以使用--branches --remotes
来指定所有非标记引用。您可能还想添加--tag-name-filter cat
来重写指向重写提交的标记 - 您的原始命令将保持这些标记不变。