3

我从旧的远程仓库收集了相对较大的远程分支:

$ git branch -r
  guy/feat1
  guy/feat2
  guy/feat3
  guy/feat4
  guy/feat5
  guy/feat6
  guy/feat7
  guy/feat8
  origin/HEAD
  origin/master

是否有一个命令可以删除所有guy分支?

回购不再guy作为远程回购。

4

3 回答 3

4
git branch -r | grep guy/ | xargs git branch -d

(假设这些$标志实际上不是你输出的一部分......)

于 2013-03-17T15:31:59.500 回答
4

您也可以尝试(从git remote):

git remote --prune guy

和:

prune

删除下所有过时的远程跟踪分支<name>
这些陈旧的分支已从 引用的远程存储库中删除<name>,但仍可在本地“remotes/”中使用。

使用--dry-run选项,报告将修剪哪些分支,但实际上并不修剪它们。

另见“和之间的区别git remote prunegit branch -d -r

如果 guy 不再是有效的远程仓库,那么:

git gc --prune=now

将清理这些分支(以及一些未引用的提交,因此请谨慎使用)
在“如何从 Git 中删除无效的远程分支引用? ”中查看更多信息:通常更安全的是:git branch -rd guy/badbranch如果可能的话,但是如果这不起作用,那么git gc --prune=now也可以是一个解决方案。

于 2013-03-17T15:32:20.523 回答
0

要删除远程分支,您可以 git push <remote-repo> :branch-to-delete 在 branch-to-delete 之前使用注意冒号。另请参阅在 git 中删除多个远程分支...这显示了如何构造一个单行器以一次性删除多个分支。

于 2013-03-17T15:37:35.733 回答