如何删除分支,所有提交被推送到错误的存储库?

mis*_*hru 6 git history commit

我们有几个git存储库在Android项目上工作.我们有'引导'回购,它很小,而'android'则是巨大的.在开发过程中,我们的一个人将分支从'android'推送到'boot',现在启动存储库大小为700 MB!无论如何完全删除错误的分支以及现在从'boot'开始的与它相关的所有提交?

我尝试过filter-branch和其他方法,但是大多数方法都会更改错误推送后的提交数量

理论上,这不应该是一个问题,删除"在一边"的提交.此分支从未合并为"master",并且这些提交不是任何有用提交的父级

Arr*_*ter 12

使用从远程服务器删除分支 git push

git push --delete boot branchname
Run Code Online (Sandbox Code Playgroud)

在此之后,每个人都可以在其本地存储库上运行以下命令以删除已删除的分支.

git remote prune boot
Run Code Online (Sandbox Code Playgroud)

删除分支后,默认情况下,数据仍会在每个存储库中停留2-4周,作为防止意外数据丢失的措施.如果磁盘空间问题对您来说非常重要,那么可以尽快将其删除,但请注意,这将删除暂时保留的所有无法访问的对象,以防止意外数据丢失.

git gc --aggressive --prune=now
Run Code Online (Sandbox Code Playgroud)


eck*_*kes 5

删除分支是通过

git branch -D branch_name
Run Code Online (Sandbox Code Playgroud)

注意大写-D选项:这告诉git删除分支,即使它没有完全合并到master中.

这样做之后,用垃圾收集器启动垃圾收集器git gc.那你应该没问题.

  • 分支本身只是提交的名称.(磁盘上40个字节)并删除分支无法解决m问题.通过推送到存储库的大量提交仍然会在存储库中引用由不正确推送创建的对象,因此GC也没有帮助 (2认同)
  • 这不是原始问题的答案.原始提交的数据仍然存在. (2认同)