Git - 清理旧分支

标签 git github branch

我当前的 git 仓库中有几个分支。其中大部分已用于测试最终被放弃的新功能,其中一些已经实现并 merge 到我的主人。另一个(称之为 master2)指的是我正在处理的相同代码的不同概念(并且可能值得拥有自己的分支,但由于它现在被卡住,我只想将它保留在那里直到我有时间投入到它)。

我的问题是:除了 master 和 master 2 之外,如何删除所有旧的和现在未使用的分支?

我不介意将所有旧历史保存在远程存储库中,但我也不介意丢失它们。我的目标是在本地处理 repo 时避免旧东西弄乱我的自动完成。

我浏览过的其他问题似乎是在寻找更复杂/更专业的场景,在这些场景中,人们希望将所有分支 merge 到 master 或类似的组合中。相反,我确实希望(在某种意义上)重新开始,只有我的 master 和 master2 分支在本地可见并且是最新的。特别是,我有一些尚未 merge 的分支,但我仍然想保留,这与建议的不同 here .

如果与理解相关,这是一个用于科学计算的存储库。

最佳答案

您可以使用 -D 开关删除分支:

$ git branch -D branch_to_remove

Git 没有内置的方法来删除除这两个分支之外的所有分支(至少,据我所知不是),但是您可以使用一个简单的 shell 脚本来执行此操作:

$ git branch -D `git branch | grep -v master`

grep -v 反转 grep 模式匹配。如果分支有不同的名称,那么你可以使用

$ git branch -D `git branch | grep -v 'master\|another_branch'`

这将删除除名为 master 的分支和另一个分支之外的所有分支。

关于Git - 清理旧分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33154319/

相关文章:

version-control - 版本升级与版本分支的优缺点

git - 将 repo 从 bitbucket 转移到 github 失败

amazon-web-services - 为安装在 AWS EC2 上的 Jenkins 设置 GitHub Webhook

即使在删除后,Git 分支仍显示在远程分支列表中

regex - 带有 perl 正则表达式的 git 日志

windows - 混帐 "fatal: .git/index: index file open failed: Permission denied"

git - 在 git 中,如何找到创建分支的修订版本?

git - 将 GIT 与 GIT GUI 结合使用 - Master 和 Branching

git - 设置 http.sslCAInfo 后无法克隆 Github 存储库

git - "Local refs configured for ' git push':"column mean in the output of ` git Remote show origin`是什么意思?