git filter-branch --subdirectory-filter保留与历史记录中不符合过滤条件的文件和文件夹

时间:2018-08-27 21:23:55

标签: git git-filter-branch

我想使用'git filter-branch --subdirectory-filter'命令将已有10年之久的大型存储库拆分为几个较小的存储库。问题在于,在执行了文档中描述的步骤之后,我的干净存储库仍然包含带有与过滤器表达式不匹配的文件和文件夹的提交。

我在做什么错了?

复制步骤:

  1. 将存储库克隆到新文件夹中:
      

    git clone https://gitlab.com/MyRepo.git

  2. 运行git filter-branch --subdirectory-filter命令从所有标签和分支中删除所有内容,并仅保留一个特定的文件夹:
      

    git filter-branch --subdirectory-filter path / To / Folder --prune-empty --tag-name-filter cat---all   注意:对于某些标签,我收到“警告:Ref'refs / tags / MyTag'未更改”警告。

  3. 将存储库克隆到另一个文件夹:
      

    git clone file:/// MyRepo MyRepoClean

  4. 使用this解决方案检查存储库的大小并在存储库中查找大文件。

结果: HEAD版本的“干净”存储库仅包含最初位于“路径/收件人/文件夹”文件夹中的文件。但是,历史记录包含其他文件夹中的文件和文件夹。

注意:

  1. 存储库包含很多标签。

0 个答案:

没有答案