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

ASh*_*lly 1 git

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

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

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

小智 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
Run Code Online (Sandbox Code Playgroud)

输出将显示已合并为nto的分支,origin/master因此可以安全地删除git branch -d <branch>.从官方Linux Kernel Git文档中git branch:

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

删除refs/remotes/origin下的远程跟踪分支

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

$ git fetch -p origin
Run Code Online (Sandbox Code Playgroud)

官方Linux Kernel Git文档中git fetch:

获取后,删除远程不再存在的任何远程跟踪分支.