保存git版本差异文件并保留目录结构

谁都会走 提交于 2019-12-07 18:01:55

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!