背景
为了方便管理,把长期迭代的前端项目都放到了一个git仓库里。
这样使用CI自动打包上线测试环境都需要判断当前git仓库里哪些项目是被改动过都,只打包最近改动过的项目。
相关命令
git log --name-status 每次修改的文件列表, 显示状态
git log --name-only 每次修改的文件列表
git log --stat 每次修改的文件列表, 及文件修改的统计
git whatchanged 每次修改的文件列表
git whatchanged --stat 每次修改的文件列表, 及文件修改的统计
git show 显示最后一次的文件改变的具体内容
解决方案
使用git log --name-only -p -10获得最近10次修改的文件。然后利用正则匹配到和项目目录相关的文件。就得到最近改动过的项目。
在使用正则过程当中,遇到了这个知识点。就是reg对象的exec和字符串的match函数效果是不一样的。exec可以反复迭代,不回一次返回所有的匹配。match函数里使用/g参数后可以返回所有的匹配。