在自动化执行过程中需要找到这个分支修改的文件列表,就像github pull request里面那样,试了几种办法,这个办法是成功的。
#获取当前分支名:
CURRENT_BRANCH=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
echo $CURRENT_BRANCH
#获取当前分支修改的commit的id:
BRANCH_WORKING_COMMITS=$(git log --no-merges $CURRENT_BRANCH ^master --oneline | cut -d' ' -f1 | paste -s -d' ' - )
echo $BRANCH_WORKING_COMMITS
#根据commit的id,列出来所有修改的文件名,sort | uniq用来去重,如果需要过滤文件夹或者类型的话,可以在renames后面加“ -- folder”, 如果需要过滤文件类型的话可以再加“| grep xxx.xx”。
CHANGED_SPECS=$(git show --pretty="" --name-only $BRANCH_WORKING_COMMITS --no-renames | sort | uniq | paste -s -d, -)
echo $CHANGED_SPECS