我想让我的本地和远程存储库在分支方面始终保持同步。
在 GitHub 上进行 Pull Request 审查后,我 merge 并删除了我的分支(远程)。 我如何才能在我的本地存储库中获取此信息并让 Git 也删除我的本地版本的分支?
最佳答案
快速方法
git branch --merged | grep -v "\*" | xargs -n 1 git branch -d
注意:如果您不在 master
上,这可能会删除该分支。继续阅读“更好的方法”。
确保我们保留 master
您可以确保 master
或与此相关的任何其他分支不会被 grep
ing 删除。在那种情况下你会去:
git branch --merged | grep -v "\*" | grep -v "YOUR_BRANCH_TO_KEEP" | xargs -n 1 git branch -d
因此,如果我们想保留 master
、develop
和 staging
,例如,我们会:
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/