用Git 命令行列出一个分支修改文件列表的脚本

在自动化执行过程中需要找到这个分支修改的文件列表,就像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

你可能感兴趣的:(git)