Bash脚本从git中提取文件名whatchanged
我试图获取所有更改为知道要提醒的js文件的列表。
我以前问过这个问题
到目前为止,这是我想出来的最好,但感觉真的不安全。
GITCHANGES=$(git whatchanged -n 1 --pretty=format:)
I=0;
for f in $GITCHANGES;
do
I=$(($I + 1));
if [[ $(($I % 6 )) == 0 ]]; then
echo "$f"
fi
done
但是这给了我所有改变的文件( php
css
js
)而不仅仅是js
文件
我怎样才能得到js文件? 还有更好的方法来完成这个?
从这个答案中,使用git show --pretty="format:" --name-only HEAD^
获取已更改文件的列表。 然后通过grep
管道。
git show --pretty="format:" --name-only HEAD^ | grep '.js$'
你的脚本可以简单地简化成
git diff-tree --name-only HEAD^ HEAD | grep '.js$'
这将吐出HEAD^
(第一父母)和HEAD
之间不同的所有.js文件的列表。
上一篇: Bash script to extract filenames from git whatchanged
下一篇: git: how can I list ALL the files present at a given commit?