git筛选器分支错误:“0”;致命:不是有效的对象名称HEAD“;

git筛选器分支错误:“0”;致命:不是有效的对象名称HEAD“;,git,git-filter-branch,Git,Git Filter Branch,我试图使用git filter branch命令将两个子文件夹移动到自己的存储库中。我试图运行下面的命令,结果出现了致命错误 git filter-branch --prune-empty --subdirectory-filter "adb-*" -- master 错误: Rewrite 52d9bf5425d940f730ccdad1548b7d957936cd00 (59/59) (55 seconds passed, remaining 0 predicted) Ref 'refs/

我试图使用git filter branch命令将两个子文件夹移动到自己的存储库中。我试图运行下面的命令,结果出现了致命错误

git filter-branch --prune-empty --subdirectory-filter "adb-*" -- master
错误:

Rewrite 52d9bf5425d940f730ccdad1548b7d957936cd00 (59/59) (55 seconds passed, remaining 0 predicted)
Ref 'refs/heads/master' was deleted
fatal: Not a valid object name HEAD
有人能告诉我我可能遗漏了什么吗

有没有办法包含多个子文件夹

您可以改为使用bfg回购清洁剂

例如:

# Delete all files named 'id_rsa' or 'id_dsa' :
$ bfg --delete-files id_{dsa,rsa}  my-repo.git
我偶尔使用它,但dit在文件夹上试用过。

每当我需要删除文件夹时,我都会使用
git子树拆分
,这不是最佳解决方案,但确实有效。

显然没有名为
abd-*
的文件。我想您希望这是匹配的,例如,
abd foo
abd bar
,但是
--子目录过滤器
不能做到这一点。@torek-谢谢。有没有一种方法可以包含多个子文件夹?不是用
--子目录筛选器
,没有。你可以用其他筛选器来完成(这会比较慢,但是只有55个提交要复制,你可能不在乎)。