git gui 历史版本_gitqlite,又一种颇具创意的 Git 使用方式

大家好,我是小 G。

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

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

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

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

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

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

27ea917dc2f29445c3538209b12af9a1.png

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

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

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

--

这里再安利一波我们的公众号: GitCube,目前坚持每天一篇原创文章,主要分享比较实用或有趣的开发工具与开源项目,偶尔也会聊聊技术圈内最近发生的新鲜事,感兴趣的小伙伴可以关注一下哈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值