我们有几个git存储库在Android项目上工作。我们有'引导'回购,它很小,而'android'则是巨大的。在开发过程中,我们的一个人将分支从“android”推送到“boot”,现在启动存储库大小为700 MB!无论如何完全删除错误的分支以及现在从'boot'开始的与它相关的所有提交?
我尝试过filter-branch和其他方法,但是大多数方法都会更改在错误推送后生成的提交数
理论上,这不应该是删除“在一边”的提交。此分支从未合并为“master”,并且这些提交不是任何有用提交的父级
答案 0 :(得分:11)
使用git push
git push --delete boot branchname
在此之后,每个人都可以在他们的本地仓库上运行以下命令来删除已删除的分支。
git remote prune boot
删除分支后,默认情况下,数据仍会在每个存储库中停留2-4周,作为防止意外数据丢失的措施。如果磁盘空间问题对您来说非常重要,那么可以尽早将其删除,但请注意这将删除暂时保留的所有无法访问的对象,以防止意外数据丢失。
git gc --aggressive --prune=now
答案 1 :(得分:5)
删除分支由
完成git branch -D branch_name
注意大写-D
选项:这告诉git删除分支,即使它没有完全合并到master中。
执行此操作后,使用git gc
启动垃圾收集器。那么,你应该没事。