如何查找已从master中删除的本地git分支

时间:2013-08-06 13:06:56

标签: git

在我们的工作流程中,生产就绪的开发分支被推送到远程跟踪存储库,在那里它们被合并到主服务器中。测试通过时删除分支。

我一直不好删除这些开发分支的本地版本,所以现在我有许多本地分支,它们没有相应的分支。

是否有快速方法可以找到我的存储库中的哪些分支已从远程存储库中删除?

2 个答案:

答案 0 :(得分:7)

在refs / heads

下查找和删除本地分支

假设原始海报意味着他想删除refs/heads下的本地分支而不是refs/remotes/origin下的远程跟踪分支,那么要找到已合并到origin/master的分支,只需使用以下内容:

# Fetch latest copy of origin/master
$ git fetch origin

# Find merged branches
$ git branch --merged origin/master

输出将显示已合并到origin/master的分支,因此可以安全地使用git branch -d <branch>进行删除。来自official Linux Kernel Git documentation for git branch

  

“ - merged”用于查找可以安全删除的所有分支,因为这些分支完全由HEAD包含。

删除refs / remotes / origin

下的远程跟踪分支

另一方面,如果原始海报意味着他想删除远程跟踪分支,那么只需将-p--prune标记传递给git fetch

$ git fetch -p origin

来自official Linux Kernel Git documentation for git fetch

  

获取后,删除遥控器上不再存在的所有远程跟踪分支。

答案 1 :(得分:2)

git fetch -p

从手册:

  

-p, - prune              获取后,删除遥控器上不再存在的任何远程跟踪分支。