解释一下,我是想实现这么一个功能,比如发现2018-03-01到2018-03-05之间的提交导致了Android系统出现问题。但是具体哪个git仓库出的问题不清楚,需要分析这段时间都改了啥,需要你把这段时间的修改都导出来。
第一步,生成diff文件
git diff --before:2018-03-05 --after:2018-03-01 > issue.diff
利用repo命令实现在每一个仓库中都执行此命令
repo forall -c "git diff --before:2018-03-05 --after:2018-03-01 > issue.diff"
第二步,连带目录结构一起复制到另外一个文件夹
find ./ -name issue.diff -exec cp -rp --parents {} ../issue \;
好了,两条命令下来,我们就可以愉快的把 issue文件夹打包发给别人来处理啦。
知识点
1. git diff 的重定向和时间限制操作
2. repo forall -c 可以在各个仓库都执行此命令
3. find命令中的-exec参数,是一条命令,以\;结尾,{}表示find寻找出来的文件
4. cp命令的–parent参数,可以把目录结构跟着一起复制过去。