【发布时间】:2012-05-23 12:44:36
【问题描述】:
我遵循一个开发流程,为每个新功能或故事卡创建一个新的本地分支。完成后,我将分支合并到 master 然后推送。
由于懒惰或健忘,随着时间的推移往往会发生的情况是,我最终会得到大量本地分支,其中一些(例如尖峰)可能尚未合并。
我知道如何列出所有本地分支,也知道如何删除单个分支,但我想知道是否有一个 git 命令可以让我删除所有本地分支?
下面是git branch --merged 命令的输出。
user@machine:~/projects/application[master]$ git branch --merged
STORY-123-Short-Description
STORY-456-Another-Description
STORY-789-Blah-Blah
* master
所有尝试删除以grep -v \* 列出的分支(根据以下答案)都会导致错误:
error: branch 'STORY-123-Short-Description' not found.
error: branch 'STORY-456-Another-Description' not found.
error: branch 'STORY-789-Blah-Blah' not found.
我正在使用:
混帐 1.7.4.1
Ubuntu 10.04
GNU bash,版本 4.1.5(1)-发布
GNU grep 2.5.4
【问题讨论】:
-
不是一个答案,而是我经常做的一件事,当我达到最高的懒惰并且本地克隆非常脏时,我只需
rm -rf /my_cool_repo并重新克隆 repo。如果我没有一个活动分支,这是“清除所有本地分支”IMO 的最简单方法。如果您正在积极地在分支上工作,显然不是答案。 -
@theJones 我不建议重新克隆,因为您会丢失未版本化和忽略文件中的任何更改,例如IDE 项目。以下最受欢迎的答案多年来一直对我有用。
标签: git bash ubuntu version-control grep