如何删除除master之外的所有本地分支并在一个没有别名的命令中开发?

     2023-02-19     214

关键词:

【中文标题】如何删除除master之外的所有本地分支并在一个没有别名的命令中开发?【英文标题】:How to delete all local branches except master and develop in one command without aliases? 【发布时间】:2022-01-04 01:41:31 【问题描述】:

在使用 Git Flow 或存在多个稳定分支的类似工作流处理项目时,我会创建许多功能分支(feature/do-something-1hotfix/fix-bug-1 等)。

有时我需要清除本地分支机构的列表,因为用几十个基本分支机构来管理它们实际上是不可能的。我通常通过将分支名称复制并粘贴到git branch -d 命令中来一次删除它们。但这需要很长时间,因此删除整个存储库并再次克隆会更容易。

我想在一个命令中删除除 masterdevelop 之外的所有这些(无需编写额外的 shell 脚本/别名),但我在互联网上找到的所有解决方案都只允许您删除除一个分支以外的所有内容(例如master)。这不是一个合适的解决方案。有没有人遇到过类似的问题?

【问题讨论】:

为什么你不能将你发现的删除除一个分支之外的所有分支调整为删除除两个分支之外的所有分支? 【参考方案1】:

让我们分步执行,这样我们就可以分解命令并了解它的作用:

 git branch | grep -v " master$" | grep -v " develop$" | xargs git branch -D

注意:您不能删除当前已签出的分支。

一步一步

zrrbite@ZRRBITE MINGW64 /d/dev/branch_del_test (master)
$ git branch
  develop
* master
  test
  test2

zrrbite@ZRRBITE MINGW64 /d/dev/branch_del_test (master)
$ git branch | grep -v " master$"
  develop
  test
  test2

zrrbite@ZRRBITE MINGW64 /d/dev/branch_del_test (master)
$ git branch | grep -v " master$" | grep -v " develop$"
  test
  test2

zrrbite@ZRRBITE MINGW64 /d/dev/branch_del_test (master)
$ git branch | grep -v " master$" | grep -v " develop$" | xargs git branch -D
Deleted branch test2 (was 7767978). <-- only the output of the last xargs run is shown

zrrbite@ZRRBITE MINGW64 /d/dev/branch_del_test (master)
$ git branch
  develop
* master

【讨论】:

非常好的答案。您能否简要解释一下答案中的命令?如果我们想修改此命令以用于其他用途,这将很有帮助。谢谢。 我已经通过逐步执行命令更新了答案。【参考方案2】:

这是相同答案的一个更简单的变体:

git branch -D $(git branch | grep -v -e "master$" -e "develop$")

【讨论】:

如何从表中删除除前两个和最后一个之外的所有行?

】如何从表中删除除前两个和最后一个之外的所有行?【英文标题】:Howtoremoveallrowsfromatableexceptfirsttwoandlast?【发布时间】:2012-07-0604:52:01【问题描述】:我已经看到很多关于如何选择除第一行和最后一行之外的所有内容的问题... 查看详情

如何删除 Core Data 存储中除一个对象之外的所有对象?

】如何删除CoreData存储中除一个对象之外的所有对象?【英文标题】:HowcanIdeleteallbutoneobjectinaCoreDatastore?【发布时间】:2012-06-0615:52:03【问题描述】:是否有一种有效的方法可以删除CoreData存储中除一个或几个对象之外的所有对... 查看详情

如何删除除一个之外具有相同id的所有元素? [复制]

】如何删除除一个之外具有相同id的所有元素?[复制]【英文标题】:Howtoremoveallelementwithsameidexceptone?[duplicate]【发布时间】:2018-08-1709:53:30【问题描述】:假设有3次相同的ID,我想删除除一个以外的所有ID。示例:<divid="parent_id... 查看详情

如何删除除第一个之外的所有 URL 哈希?

】如何删除除第一个之外的所有URL哈希?【英文标题】:HowtoremoveallURLhashesexceptfirst?【发布时间】:2019-09-2918:42:17【问题描述】:嗯,在我的网站上,我有一个常见问题解答,用户可以通过URL访问特定问题,例如:https://example.com... 查看详情

如何从数组中删除除javascript中的第一个元素之外的所有元素

】如何从数组中删除除javascript中的第一个元素之外的所有元素【英文标题】:Howtoremoveallelementfromarrayexceptthefirstoneinjavascript【发布时间】:2017-01-2311:06:35【问题描述】:我想从数组中删除除第0索引处的数组元素之外的所有元素["... 查看详情

在 MS Access (2007-2013) 中删除除一个之外的所有表

】在MSAccess(2007-2013)中删除除一个之外的所有表【英文标题】:DropAllTablesExceptOneinMSAccess(2007-2013)【发布时间】:2019-03-2602:58:15【问题描述】:我正在尝试删除除Access中的一个表之外的所有表。这是在本地完成的,因此没有链接表... 查看详情

如何删除除 jq 之外的所有键?

】如何删除除jq之外的所有键?【英文标题】:HowdoIremoveallkeysexceptonewithjq?【发布时间】:2015-03-0610:49:53【问题描述】:给定一个对象列表,其中包含许多我不想要的键:["name":"Alice","group":"Admins","created":"2014","name":"Bob","group":"Users... 查看详情

git大型灾难现场

...因,需要重建git仓库。因此删了所有分支,重建git仓库。删除整个过程删除所有分支(除master外)gitbranch-dbranch_name #删除本地分支gitpushorigin--deletebranch_name #删除远程分支gitremotepruneorigin#同步远程分支,清理已删除的远程... 查看详情

删除除文件扩展名之外的所有内容[重复]

...07【问题描述】:假设我有一个字符串:x=file.tar.sh我知道如何删除除最后n个字符之外的所有内容。像这样(删除除最后3个字符之外的所有内容:$x:-3但这不适用于具有不同后缀长度的文件。(len.tar!=len.sh)我会通过删除 查看详情

如何从文件名中删除除括号内容之外的所有内容

】如何从文件名中删除除括号内容之外的所有内容【英文标题】:HowtoremoveeverythingEXCEPTcontentsofbracketsfromafilename【发布时间】:2021-04-2022:15:26【问题描述】:我有一个包含大约1700个音频文件的文件夹,格式如下:CybirdConanVoice2Cri#1... 查看详情

需要一个正则表达式来删除除数字之外的所有内容

...,我还需要一些东西,我想要一个正则表达式(但不知道如何制作),它可以捕获像这样的数字模式中的任何东西,“0000000000”或“000-000-”0000"或者基本上是任何在之前或之间存在空格和/或特殊字符 查看详情

git应用详解第三讲:本地分支的重要操作(代码片段)

...比如:小红开发A功能,小明开发B功能,小刚开发C功能。如何才能做到三者并行开发呢?git为我们提供的分支功能就能实现这一需求,如下图所示:在实际的开发过程中,master分支是用来发布项目稳定版本的。新的功能往往是在... 查看详情

如何从工作区中删除除您要保留的文件之外的所有文件? [复制]

】如何从工作区中删除除您要保留的文件之外的所有文件?[复制]【英文标题】:howtoremoveallfilesfromworkspaceexceptthoseyouwanttokeep?[duplicate]【发布时间】:2015-05-2619:22:55【问题描述】:我知道什么时候要删除所有文件,我只需执行rm(li... 查看详情

如何在 Kotlin 中使用 anko 删除除最新 10 条记录之外的所有记录?

】如何在Kotlin中使用anko删除除最新10条记录之外的所有记录?【英文标题】:Howcandeleteallrecordsexceptlatest10recordswithinKotlinwithanko?【发布时间】:2018-05-1108:39:44【问题描述】:代码B定义了一个Log表,希望清空除了最近10条记录以外... 查看详情

如何删除除 Markdown 之外的所有文件中的尾随空格?

】如何删除除Markdown之外的所有文件中的尾随空格?【英文标题】:HowdoyouremovetrailingspacesinallfilesexceptMarkdown?【发布时间】:2019-01-2620:04:16【问题描述】:在VisualStudioCode中设置"files.trimTrailingWhitespace":true在保存文件时删除... 查看详情

如何使用 Ant 删除除最新的 2 个文件之外的所有文件

】如何使用Ant删除除最新的2个文件之外的所有文件【英文标题】:Howtodeleteallbutlatest2filesusingAnt【发布时间】:2015-04-1718:26:21【问题描述】:使用Ant,我必须从备份文件夹中删除除最新的2个文件之外的所有文件。我试图否定lastco... 查看详情

怎么删除git远程仓库上某次commit

...d_master:old_master将本地old_master分支推送到远程old_master三、删除远程master分支设置github中默认分支为非master分支,否则,下一步删除操作被github禁止,github不能删除默认分支.将如下图中的DefaultBranch改成非master。删除远程的master分... 查看详情

如何删除 Firebase 节点中除最近的 X 子节点之外的所有子节点?

】如何删除Firebase节点中除最近的X子节点之外的所有子节点?【英文标题】:HowtodeleteallbutmostrecentXchildreninaFirebasenode?【发布时间】:2015-11-2407:27:11【问题描述】:假设一个Firebase节点lines填充了唯一ID子节点(来自push()操作),... 查看详情