前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GitHub 上的这个开源项目也太有创意了吧!

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

作者头像
GitHubDaily
发布2020-07-17 13:51:21
6060
发布2020-07-17 13:51:21
举报
文章被收录于专栏:GitHubDailyGitHubDaily

大家好,我是小 G。

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

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

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

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

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

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

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

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

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

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

代码语言:javascript
复制
SELECT DISTINCT author_email FROM commits

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

代码语言:javascript
复制
SELECT * FROM files WHERE commit_id='some_commit_id'

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

代码语言:javascript
复制
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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GitHubDaily 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档