2011-03-01 97 views
6

我们有几个工作在Android项目上的git仓库。我们有'引导'回购这是很小,'机器人'是巨大的。在开发过程中,我们的一个人推动了从'android'到'boot'的分支,现在引导存储库大小为700 MB!无论如何,现在完全删除错误的分支和所有与“boot”相关的提交?如何删除所有提交推送到错误存储库的分支?

我试图过滤分支等方法,但大多更改承诺是错误的推

理论上,这不应该是一个问题,删除提交那些“就在身边”后提出的数字。这个分支从来没有合并“主”和这些承诺都没有父母任何有用的承诺

回答

5

删除分支由

git branch -D branch_name 

注资本-D选项来完成的:这告诉GIT中甚至删除分支如果它没有完全合并到主。

做完之后,用git gc启动垃圾收集器。那么,你应该没问题。

+2

分支本身只是提交的名称。 (磁盘上有40个字节)并删除分支不能解决问题。由不正确推送创建的对象仍然通过大量提交到存储库的提交在存储库中引用,因此GC不会帮助 – mishmashru 2011-03-06 17:06:15

+2

这不是原始问题的答案。原始提交的数据仍然存在。 – kazanaki 2015-04-24 09:46:35

11

从远程服务器上删除一个分支完成使用git push

git push --delete boot branchname 

之后每个人都可以在自己的本地回购运行以下命令来删除已删除的分支。

git remote prune boot 

的分支,虽然删除后,该数据仍然会默认萦绕在每一个仓库2-4周的一项措施,以防止数据的意外丢失。如果磁盘空间问题对您来说真的很重要,那么可以尽早将其删除,但请注意,这将删除所有暂时保留的不可访问的对象,以防止意外的数据丢失。

git gc --aggressive --prune=now 
相关问题