我正在尝试编写一个脚本,该脚本为提交日志消息提供正则表达式,然后在所有提交中显示git diff。我的脚本中有以下内容:
#!/bin/sh
ARGV=("$@")
dir=$(pwd)
commits=($(git --work-tree ${dir} log --grep ${ARGV[0]} | grep -o 'commit .*$' | cut -f2 -d' '))
echo $(git --work-tree ${dir} log --grep ${ARGV[0]})
for i in ${commits[@]}
do
echo "command: git diff ${i}"
echo $(git diff ${i})
done
当我运行/path/to/script.sh <some-regex>
时,我得到以下输出:
命令:git diff 806e5e76c0b20eabda3a14b1442168149ad30155
致命:含糊不清的论点&#39; 806e5e76c0b20eabda3a14b1442168149ad30155&#39;:未知的修订版或路径不在工作树中。 使用&#39; - &#39;将路径与修订分开,如下所示: &#39; git [...] - [...]&#39;
然而,当我运行输出的实际命令时,一切正常。有什么想法吗?
谢谢,
本
答案 0 :(得分:0)
一个脚本,它接受提交日志消息的正则表达式 在所有提交中显示git diff
这不是吗?
git log --patch --grep=<pattern>