0

我想从 git blame/bash/awk 大师那里得到一些帮助。我想列出所有的人,他们出现在特定文件组中每个文件的 git blame 中。例子:

  • 文件 A 和 B;
  • git blame 将 John、Terry 和 Merry 列为 A 中各行的作者;
  • git blame 将 Jane 和 Mike 列为 B 中各行的作者;
  • 该命令将文件 A 和 B 作为输入文件并返回 Jane、John、Terry、Merry 和 Mike。

所以我的想法是这样的:

  • 我在树枝上完成了我的工作;
  • 执行该命令,该命令将与 master 相比在此分支上修改的所有文件作为输入,并返回这些文件中行的所有作者的列表。

这个想法是知道要对评论执行 ping 操作。

4

2 回答 2

1

您可以使用logthen 管道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"
于 2020-05-07T09:07:52.590 回答
0

列出路径为 的文件中所有行的作者$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
于 2020-05-07T09:18:37.317 回答