用shell脚本获取一个github项目所有文件的历史信息

前几天,由于项目需要我遇到一个问题:clone一个github项目到本地,然后获取这个项目中每一个文件的历史信息。

当时比较没有思路,只知道可以使用git log这个命令获取一个项目的所有历史信息,我看着打印在控制台上的大片历史信息无计可施。后来突然想到可以用重定向,于是把这个项目的log信息重定向到了一个txt文件中。虽然是保存下来了,但同时也带来了很大的问题:第一,重定向得到的这个文件有140多MB,连打开都成问题,当然如果是用语言的IO当然是可以读取的,但是我的目标是把每个文件的历史信息单独保存成一个文件,于是遇到第二个问题:当我用java读取文件后如何进行切割呢?我需要把每个文件的信息切割出来再保存到一个单独的文件中去。当然,观察每个文件信息的起始部分,根据它们的特点写一个正则,然后将内容抽取出来写到另外的一个文件中。但是这样明显非常不优雅,最好的办法是针对每个文件执行git log命令,这样才能得到最完整、最干净的信息。

抱着试一试的态度,我请教了师姐,因为我知道师姐经常需要操作一些文件,也许她会有思路,结果师姐就告诉我可以用shell脚本,遍历每个文件,然后执行git log命令。她的指点让我豁然开朗!(感谢师姐!),于是我想到,我可以迭代遍历这个项目下的所有子孙文件,然后对每个文件执行git log,再使用重定向,将得到的信息单独保存到一个文件中,于是这个棘手的问题终于被解决了!

代码附上:

#循环遍历/home/××××/PycharmProjects/gecko-dev目录下的所有子
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值