如何让git log --name-only显示Co-authored-by标注的共同作者
git log --name-only 默认输出规则仅读取提交元数据里的主Author字段,不会主动解析提交正文中的Co-authored-by trailer声明,因此默认输出只会展示单个主作者,属于正常现象,并非提交配置错误。
临时查看带共同作者的提交记录
直接使用自定义格式参数调用git log,让输出包含完整提交正文即可看到所有共同作者声明,同时保留改动文件列表输出:
git log --format="commit %H%nAuthor: %an <%ae>%n%B%nChanged files:" --name-only
参数说明:
%H:输出完整提交哈希%an <%ae>:输出主作者姓名和邮箱%B:完整输出提交标题+正文内容,所有写在正文里的Co-authored-by行会原样展示--name-only:保留原有的改动文件列表输出能力
如果不需要展示其他提交正文内容,只提取共同作者行,可以配合过滤逻辑使用:
git log --pretty=format:"commit %H%nAuthor: %an <%ae>" --name-only | while read -r entry; do echo "$entry" if [[ $entry == commit* ]]; then hash=${entry#commit } git show -s --format=%B "$hash" | grep "^Co-authored-by:" fi done
永久配置默认展示共同作者
通过Git全局别名配置,把带共同作者展示的日志命令设为快捷指令,避免每次输入长参数:
git config --global alias.logca 'log --format="%C(yellow)commit %H%Creset%nAuthor: %an <%ae>%n%B%nChanged files:" --name-only'
配置完成后,在任意Git仓库执行git logca即可输出包含主作者、所有共同作者、改动文件列表的完整日志。
格式校验注意点
如果上述命令执行后还是看不到共同作者,先检查提交里的Co-authored-by格式是否合规:
Co-authored-by:行必须和提交标题之间保留至少一个空行,属于提交正文部分- 行首不能有多余缩进、空格
- 行内容必须符合
Co-authored-by: 作者姓名 <作者绑定Git的邮箱>格式,邮箱部分不能缺失 - 如果是提交后补加的共同作者,需要通过
git commit --amend修改提交信息后再推送,旧提交记录不会自动更新共同作者字段
内容的提问来源于stack exchange,提问作者tristone
相关产品推荐
相关产品推荐

