我希望得到git gurus/bash/awk的一些帮助。我想得到一个所有人的列表,他们出现在特定文件组中每个文件的git指责中。示例:
- 文件A和B
- git指责将约翰、特里和梅里列为A中各行的作者
- git指责将Jane和Mike列为B中各行的作者
- 该命令将文件A和B作为输入,并返回Jane、John、Terry、Merry和Mike
所以我的想法是:
- 我完成了一个分支的工作
- 执行该命令,将该分支上与master相比修改过的所有文件作为输入,并返回这些文件中行的所有作者的列表
这个想法是知道谁来ping评论。
您可以使用log
,然后通过管道连接到sort
git log --all --pretty=format:"%an" -- path/to/fileA path/to/fileB | sort -u
如果你想要一个别名,请选择
git config --global alias.who '!f() { git log --all --pretty=format:"%aN" -- $1 | sort -u; }; f'
# then just
git who "path/to/fileA path/to/fileB"
列出路径为$path
的文件中所有行的作者。
git blame --porcelain -- $path | sed -n -e '/^author /s/^author //p' | uniq -u
处理一组文件,如a和B,
for path in A B;do
git blame --porcelain -- $path
done | sed -n -e '/^author /s/^author //p' | uniq -u