使用 --pretty=format
,您可以根据需要格式化git log
或git show
标准输出。
git log
--pretty=format:'{%n "commit": "%H",%n "author": "%an <%ae>",%n "date": "%ad",%n "message": "%f"%n},'
$@ |
perl -pe 'BEGIN{print "["}; END{print "]n"}' |
perl -pe 's/},]/}]/'
上面的示例解析作者、提交、日期、消息值。我们如何解析拉取请求获得批准时可用的Approved-by
值。
甚至官方文件也没有提到
Approved-by
不是内置字段,因此 Git 没有占位符。我们可以使用其他方法来获取字段并格式化输出。
假设Approved-by
行如下所示:
批准人:好人
这是一个 bash 示例:
for commit in $(git log --pretty=%H);do
echo -e "{n
"commit": "$commit",n
"author": "$(git log -1 $commit --pretty=%an)",n
"date": "$(git log -1 $commit --pretty=%cd)",n
"message": "$(git log -1 $commit --pretty=%f)",n
"approved-by": "$(git log -1 $commit --pretty=%b | grep Approved-by | awk -F ': ' '{print $NF","}' | xargs echo | sed -e 's/,$//')"n
},"
done |
perl -pe 'BEGIN{print "["}' |
sed -e '$s/},/}]/'
它需要改进以满足您的实际需求,尤其是"approved-by"
线。基本上,它首先获取所有提交 sha1 值,然后解析它们以获取每个提交的字段,然后格式化输出。