解释一下,我是想实现这么一个功能,比如发现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参数,可以把目录结构跟着一起复制过去。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐