首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在远程存储库上删除本地Git分支后将其删除

在远程存储库上删除本地Git分支后将其删除
EN

Stack Overflow用户
提问于 2013-08-01 08:04:02
回答 7查看 67.3K关注 0票数 171

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

在查看了GitHub上的拉取请求后,我合并并删除了那里的分支(远程)。我如何在本地存储库中获取此信息,并让Git删除我的本地版本的分支?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-08-01 15:30:02

快捷方法

代码语言:javascript
复制
git branch --merged | grep -v "\*" | xargs -n 1 git branch -d

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

一定要留住师父

您可以确保master或任何其他分支不会被更多的grep删除。在这种情况下,您应该这样做:

代码语言:javascript
复制
git branch --merged | grep -v "\*" | grep -v "YOUR_BRANCH_TO_KEEP" | xargs -n 1 git branch -d

因此,如果我们想保留masterdevelopstaging,我们应该这样做:

代码语言:javascript
复制
git branch --merged | grep -v "\*" | grep -Ev "(\*|master|develop|staging)" | xargs -n 1 git branch -d

将此设置为别名

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

代码语言:javascript
复制
alias gbpurge='git branch --merged | grep -Ev "(\*|master|develop|staging)" | xargs -n 1 git branch -d'

然后重新加载.bashrc.zshrc

代码语言:javascript
复制
. ~/.bashrc

代码语言:javascript
复制
. ~/.zshrc
票数 192
EN

Stack Overflow用户

发布于 2015-05-14 05:37:43

非常简单的解决方案:删除本地存储库并重新克隆远程存储库。可能看起来不是很优雅,但它很简单,您不需要阅读手册页就可以确切地理解您在做什么:-)。

票数 7
EN

Stack Overflow用户

发布于 2016-01-24 06:33:29

这些对我来说都不管用。你可以在这里看到我的另一个答案:https://stackoverflow.com/a/34969726/550454

但本质上,我现在的~/.gitconfig中有这个

代码语言:javascript
复制
[alias]
  prune-branches = !git remote prune origin && git branch -vv | grep ': gone]' | awk '{print $1}' | xargs -r git branch -d
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17983068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档