我需要编写一个
的脚本我有第2步的脚本:
for i in `git show --pretty="format:" --name-only SHA1 | grep '.*\.hbm\.xml' `; do
# call script here.....
exit
done
现在,我需要弄清楚第1步。
答案 0 :(得分:16)
类似的东西:
for commit in $(git rev-list $branch)
do
if git ls-tree --name-only -r $commit | grep -q '\.hbm\.xml$'; then
echo $commit
exit 0
fi
done
请注意git show
只列出在该提交中已更改的文件,如果您想知道是否存在与提交中的特定模式匹配的路径,则需要使用git ls-tree
之类的内容
答案 1 :(得分:10)
git rev-list
将以反向时间顺序列出从给定提交可到达的所有修订,因此您可以向其传递分支名称以向后获取该分支头的列表:
$ git rev-list master
a6060477b9dca7021bc34f373360f75064a0b728
7146d679312ab5425fe531390c6bb389cd9c8910
53e3d0c1e1239d0e846b3947c4a6da585960e02d
a91b80b91e9890f522fe8e83feda32b8c6eab7b6
...