GitHub 上的这个开源项目也太有创意了吧!

阅读本文大概需要 3 分钟。

今天想给大家推荐的这个 GitHub 项目,并非是娱乐向的,而是纯技术向的。

我们都知道,Git 作为当下最为主流的分布式版本控制系统,已然成为程序员生活中不可或缺的一款开发工具。

在日常开发工作中,我们经常会使用 Git 来完成源码的追踪、回溯、保存、提交等各个操作,而在这一系列操作之下,久而久之,项目便难免会出现较为庞大的代码提交记录、开发分支、程序版本等各种信息。

这个时候,如果你想仅凭某个记忆片段,来查询某个作者在某个时间段所提交的一段具体代码,毫无疑问要耗费不少精力。

如果有这么一种方式,可通过编写数据库查询语句,来快速完成这些信息的检索,那是不是就能方便许多呢?

刚好,不久前就有一支来自国外的技术团队 Augmentable 帮我们完成了这件事情。

他们在 GitHub 上开源了一款工具:gitqlite,通过为 GitHub 项目创建一张虚拟的 SQLite 数据库表,进而达到能直接用数据库查询语句,快速检索 Git 仓库中的内容,其中包括 Git 提交记录、作者名称、邮箱、文件历史记录等内容。

https://github.com/augmentable-dev/gitqlite

开发者可根据自己的开发需求编写数据库查询语句,快速从 Git 仓库中提取精准信息。

比方说,你想提取 GitHub 项目中,所有参与代码贡献的作者邮箱,那么只需要编写下面这一行语句:

SELECT DISTINCT author_email FROM commits

如果是想查询某个提交命令上的所有被更改文件,则可用下面这条查询语句:

SELECT * FROM files WHERE commit_id='some_commit_id'

更进一步的,想要查看项目作者在不同星期几的代码提交次数,则可以用下面这段查询语句:

SELECT
    count(*) AS commits,
    count(CASE WHEN strftime('%w',author_when)='0' THEN 1 END) AS sunday,
    count(CASE WHEN strftime('%w',author_when)='1' THEN 1 END) AS monday,
    count(CASE WHEN strftime('%w',author_when)='2' THEN 1 END) AS tuesday,
    count(CASE WHEN strftime('%w',author_when)='3' THEN 1 END) AS wednesday,
    count(CASE WHEN strftime('%w',author_when)='4' THEN 1 END) AS thursday,
    count(CASE WHEN strftime('%w',author_when)='5' THEN 1 END) AS friday,
    count(CASE WHEN strftime('%w',author_when)='6' THEN 1 END) AS saturday,
    author_email
FROM commits GROUP BY author_email ORDER BY commits

类似的组合玩法还有很多,目前看来最为实用的,是你帮你快速完成项目代码的统计与查询工作,当你下次要查询某个日期的代码修改片段时,基本就可以用一行查询语句快速搞定啦。

数据库玩的比较溜的同学,不妨尝试安装一下

推荐阅读
1Scrapy 和 Pyppeteer 更优雅的对接方案
2在Scrapy中如何使用aiohttp?
3Python 为什么推荐蛇形命名法?
4‍‍
我去!GitHub 个人页还能这么玩?

好文和朋友一起看~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值