git - 在远程 repo 上删除本地 Git 分支后删除它们

标签 git github branch pull repository

我想让我的本地和远程存储库在分支方面始终保持同步。

在 GitHub 上进行 Pull Request 审查后,我 merge 并删除了我的分支(远程)。 我如何才能在我的本地存储库中获取此信息并让 Git 也删除我的本地版本的分支?

最佳答案

快速方法

git branch --merged | grep -v "\*" | xargs -n 1 git branch -d

注意:如果您不在 master 上,这可能会删除该分支。继续阅读“更好的方法”。

确保我们保留 master

您可以确保 master 或与此相关的任何其他分支不会被 greping 删除。在那种情况下你会去:

git branch --merged | grep -v "\*" | grep -v "YOUR_BRANCH_TO_KEEP" | xargs -n 1 git branch -d

因此,如果我们想保留 masterdevelopstaging,例如,我们会:

git branch --merged | grep -v "\*" | grep -Ev "(\*|master|develop|staging)" | xargs -n 1 git branch -d

将其设为别名

因为它有点长,您可能想为您的 .zshrc.bashrc 添加一个别名。我的名为 gbpurge(用于 git branches purge):

alias gbpurge='git branch --merged | grep -Ev "(\*|master|develop|staging)" | xargs -n 1 git branch -d'

然后重新加载您的.bashrc.zshrc:

. ~/.bashrc


. ~/.zshrc

关于git - 在远程 repo 上删除本地 Git 分支后删除它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17983068/

相关文章:

Eclipse/Subclipse : Switch from branch to trunk with modified sources?

git - 如何获取给定 shasum 的 git 分支名称?

git - 如果 Github 中不存在自定义标签,则阻止 merge

git - 如何识别给定 SHA-1 "belongs to"的远程分支?

git - 将 Git 用作简单的 KV 存储时防止 GC

java - 没有 pull 的Git推送

git 状态不显示权限更改

git - 做 rebase 时我应该在哪个分支?

ruby-on-rails - 如何处理我在 github 托管项目上的数据库凭据?

android - Gradle无法解决github依赖