我在 git 仓库中有一个分支。如何在存储库中找到与分支最匹配的单个提交?就像我在这个分支和存储库中的每个其他提交之间运行差异一样,我想找到产生最少差异行的提交。
答案1
这是我的解决方案:
#!/bin/sh
start_date="2012-03-01"
end_date="2012-06-01"
needle_ref="aaa"
echo "" > /tmp/script.out;
shas=$(git log --oneline --all --after="$start_date" --until="$end_date" | cut -d' ' -f 1)
for sha in $shas
do
wc=$(git diff --name-only "$needle_ref" "$sha" | wc -l)
wc=$(printf %04d $wc);
echo "$wc $sha" >> /tmp/script.out
done
cat /tmp/script.out | grep -v ^$ | sort | head -1 | cut -d' ' -f 2