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文件的列表。

链接地址: http://www.djcxy.com/p/26657.html

上一篇: Bash script to extract filenames from git whatchanged

下一篇: git: how can I list ALL the files present at a given commit?