git - 如何列出已经完全包含在 HEAD 中的旧分支
问题描述
我们有一个包含大量git
历史的大型 repo,并且 remoteorigin
包含许多已包含在master
. 有什么简单的方法可以列出 HEAD 中已经包含的本地和远程分支?
我知道如何列出包含给定提交的分支?如果我想做反向操作,检查哪些分支已经包含提交 HEAD 会有所帮助。
解决方案
快速备忘单:
git branch -a --merged HEAD
将列出已经完全包含在HEAD
. 这可用于列出可能被删除的旧分支标签。请注意,它还将列出当前签出的分支(标有星号),因此您可能不应该盲目地删除所有这些分支。(这是对原始问题的确切答案,有关其他信息,请参见下文。)
git branch -a --contains HEAD
会做相反的事情。它将列出所有已经包含提交的分支 HEAD
,这意味着这些分支在 DAG 中是逻辑转发的。这可用于列出包含给定提交的分支(例如错误修复)。
git branch -a --no-merged HEAD
将列出所有尚未包含在HEAD
. 这可用于列出可能包含仍然缺少的代码的分支HEAD
。
git branch -a --no-contains HEAD
将列出所有尚未包含commit的分支 HEAD
。这可用于列出缺少给定提交的分支(例如错误修复)。
(如果您只对本地分支感兴趣,请删除-a
示例命令中的标志。如果您只对远程分支感兴趣,请将标志替换-a
为-r
。标志-a
表示所有分支,-r
表示远程分支。)
推荐阅读
- java - 无法将 Executors.newSingleThreadExecutor() 的结果转换为 ThreadPoolExecutor
- excel - Excel VBA:如果所选单元格为空
- javascript - 为什么我的手机浏览器看起来和电脑的开发者工具不一样
- python - 从 xarray 数据集中删除一个坐标值
- sql - 将简单 JSON 转换为 SQL SELECT 语句
- python - 在 python 中使用“for”循环时遇到错误
- excel - 检测何时在某个范围内创建或修改形状并将其复制到其他多个范围中
- php - PHP Websocket 失败:WebSocket 握手期间出错:net::ERR_CONNECTION_CLOSED(匿名)
- c# - 在自定义 JsonConverter 中,如何确定 Utf8JsonReader 数字标记是小数还是长整数?
- vb.net - 在 VB.NET 中,线程不是在 Thread.start 之后启动,而是在整个 sub 完成之后才启动