#!/bin/bash
set -euo pipefail
START_COMMIT=${1:-$(git rev-list --max-parents=0 HEAD)}
END_COMMIT=${2:-$(git rev-parse HEAD)}
echo "Searching for changes to pom.xml files between $START_COMMIT and $END_COMMIT"
for commit in $(git rev-list $START_COMMIT..$END_COMMIT)
do
if git diff-tree --no-commit-id --name-only -r $commit | grep -q "pom.xml"; then
git diff-tree --no-commit-id --name-only -r $commit | grep "pom.xml" | while read file; do
echo "$commit: $file"
done
echo ""
fi
done
2条答案
按热度按时间0pizxfdo1#
git rev-list
是更低级别的,git log
有很多方便的地方,比如深入分析提交的影响,例如他们改变了什么文件:或
分析合并的净效果,而不是分别跟踪每个合并的提交。
并列出提交消息和更改的文件。
那么你真的需要
git log
。评论:要将提交id粘贴到更改后的文件前面,只需使用awk,它就是为此而构建的。IRL它在真正的oneliner领域中,但为了便于理解,它被打破了
68de4m5k2#
我在找这样的东西:
它将打印出: