在使用 filter-branch --subdirectory-filter
命令后,如果需要从仓库中删除不需要的对象,可以使用以下步骤:
git log --all --format="%H" | grep -v $(git log --format="%H" --branches --tags)
objects-to-delete.txt
。git filter-repo --subdirectory-filter <path-to-subdirectory> --invert-paths --pathspec-from-file=objects-to-delete.txt
其中,<path-to-subdirectory>
是需要保留的子目录的路径。
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
这将删除所有原始分支和标签。
需要注意的是,这些命令可能会导致仓库历史记录的丢失,因此在执行前请确保备份所有需要保留的数据。
领取专属 10元无门槛券
手把手带您无忧上云