如何在Git当前分支列出特定作者修改的代码行或文件?
在Git分支中列出特定作者修改的代码行或文件
一、列出特定作者修改过的代码行(带文件路径和行号)
可以结合git log和git blame命令实现,执行以下bash命令:
git log --author="目标作者名/邮箱" --oneline --name-only | sort -u | xargs -I {} git blame -f -L 1,-1 --author="目标作者名/邮箱" {} | awk '{print $2 ":" $3}' | sort -u
命令说明:
git log --author="..." --oneline --name-only:筛选出该作者修改过的所有文件并去重xargs -I {} git blame -f -L 1,-1 --author="..." {}:对每个文件执行blame操作,仅保留该作者修改的行,-f参数确保输出完整文件路径awk '{print $2 ":" $3}':提取文件名和对应的行号sort -u:对结果去重,避免同一行因多次提交重复显示
如果只需要查看单个文件中该作者修改的行,直接用:
git blame --author="目标作者名/邮箱" 目标文件路径
输出结果里会直接显示该作者修改的行号和内容。
二、列出特定作者修改过的文件
如果不需要行号,只需要文件列表,用更简洁的命令即可:
git log --author="目标作者名/邮箱" --oneline --name-only | sort -u
这个命令会输出当前分支下该作者修改过的所有文件,自动去重。
注意事项
- 作者参数可以用全名、部分名字或邮箱,比如
--author="john"或--author="john@example.com",邮箱匹配会更精准 - 若作者名包含中文,确保终端使用UTF-8编码,避免出现乱码导致匹配失败
内容的提问来源于stack exchange,提问作者user3216381
相关产品推荐
相关产品推荐

