gpt4 book ai didi

git - 从远程删除大量分支

转载 作者:太空狗 更新时间:2023-10-29 13:35:06 25 4
gpt4 key购买 nike

我有一个有 1000 个分支的 Git 远程服务器,我想删除所有名称​​不foo_ 开头的分支。有没有简单的方法可以做到这一点?

最佳答案

简答

如果你的 Remote 名为“origin”,运行

git for-each-ref --format='%(refname:strip=3)' refs/remotes/origin/* | \
grep -v '^foo_\|^HEAD$' | \
xargs git push --delete origin

更多详情

git branch 更喜欢 git for-each-ref

其他答案建议将 git branch 的输出通过管道传输到 grepawk。然而,这种方法很脆弱:git branch 是一个 Porcelain(即高级)命令,其输出可能会在未来的 Git 版本中发生变化。更好的选择是使用 git for-each-ref ,一个强大的 Plumbing(即低级)命令。

命令解释

(注意:以下假定您的 Remote 称为“origin”。)

使用 git for-each-ref 以适当的格式列出 origin 上的所有远程分支:

git for-each-ref --format='%(refname:strip=3)' refs/remotes/origin/*

管道输出到

grep -v '^foo_\|HEAD$'

丢弃 HEAD 和名称以“foo_”开头的所有分支。最后,将输出通过管道传递给

xargs git push --delete origin

一口气从origin中删除所有相关的远程分支。

警告:当然,如果后者不是以“foo_”开头,则上面的命令将无法删除远程的当前分支

关于git - 从远程删除大量分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com