在我们的工作流程中,生产就绪的开发分支被推送到远程跟踪存储库,在那里它们被合并到主服务器中。测试通过时删除分支。
我一直不好删除这些开发分支的本地版本,所以现在我有许多本地分支,它们没有相应的分支。
是否有快速方法可以找到我的存储库中的哪些分支已从远程存储库中删除?
答案 0 :(得分:7)
假设原始海报意味着他想删除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包含。
另一方面,如果原始海报意味着他想删除远程跟踪分支,那么只需将-p
或--prune
标记传递给git fetch
:
$ git fetch -p origin
来自official Linux Kernel Git documentation for git fetch
:
获取后,删除遥控器上不再存在的所有远程跟踪分支。
答案 1 :(得分:2)
git fetch -p
从手册:
-p, - prune 获取后,删除遥控器上不再存在的任何远程跟踪分支。