如果要从一个 Git 存储库中移除不想要的历史分支记录,有两种方法可以选择:使用 git filter-branch
命令或使用 git rebase
命令。
使用 git filter-branch
命令的步骤如下:
git clone --mirror <原始存储库 URL>
cd <备份存储库目录>
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <分支名称>' --prune-empty --tag-name-filter cat -- --all
其中,<分支名称>
是要移除的历史分支记录的名称。如果要移除多个分支记录,可以在命令中添加多个 git rm
命令。
git push --force --tags origin 'refs/heads/*'
使用 git rebase
命令的步骤如下:
git clone --mirror <原始存储库 URL>
cd <备份存储库目录>
git rebase -i --root
在交互式重新基础编辑器中,找到要移除的历史分支记录的提交,将其行的命令由 pick
修改为 drop
,然后保存并关闭编辑器。
最后,使用以下命令将更改推送到远程存储库:
git push --force
需要注意的是,这两种方法都会改变 Git 存储库的历史记录,因此在执行这些命令之前,请确保您了解其影响,并备份重要的存储库数据。