如何在git log -G foo输出中显示包含对应提交的分支
如何让
git log -G foo输出包含提交所属分支? 你可以通过自定义git log的输出格式,结合子命令获取每个提交对应的分支列表,直接生成符合需求的输出。
直接可用的命令
git log -G foo --pretty='format:commit %H%nAuthor: %an <%ae>%nDate: %ad%nBranches: %(git branch --contains %H --no-color | sed "s/* //")%n%n %s%n' --date=format:'%a %b %d %H:%M:%S %Y %z'
命令说明
--pretty='format:...':完全自定义log的输出结构,和你期望的格式一一对应%H:输出提交的完整哈希值%an/%ae:分别输出作者姓名和邮箱,和默认log格式一致--date=format:'...':指定日期显示格式,和你给出的示例完全匹配%(git branch --contains %H --no-color | sed "s/* //"):这部分是核心——调用git branch --contains %H获取所有包含当前提交的分支,--no-color避免输出颜色控制字符,再用sed去掉当前分支前的*标记,最终得到干净的分支列表
可选调整
- 只显示本地分支:在
git branch后加--no-remotes参数,变成git branch --no-remotes --contains %H --no-color - 包含远程分支:改用
git branch -a --contains %H --no-color | sed "s/* //" | grep -v HEAD,过滤掉HEAD和origin/HEAD这类无意义的条目
执行这个命令后,输出就会和你给出的期望示例一致,每个提交下都会显示包含它的所有分支。
内容的提问来源于stack exchange,提问作者guettli
相关产品推荐
相关产品推荐

