Gitql is a Git query language.
In a repository path...
See more here
- Go 1.16+
You can access the releases page and just grab the binary. If you want to compile itself just run go build .
.
gitql "your query"
or
git ql "your query"
As an example, this is the commits
table:
commits |
---|
author |
author_email |
committer |
committer_email |
hash |
date |
message |
full_message |
(see more tables here)
select hash, author, message from commits limit 3
select hash, message from commits where 'hell' in full_message or 'Fuck' in full_message
select hash, message, author_email from commits where author = 'cloudson'
select date, message from commits where date < '2014-04-10'
select message from commits where 'hell' in message order by date asc
select distinct author from commits where date < '2020-01-01'
gitql
or open an issue
Notes:
- Gitql doesn't want to kill
git log
- it was created just for science! 😅 - It's read-only - no deleting, inserting, or updating tables or commits. 😝
- The default limit is 10 rows.
- It's inspired by textql.
- Gitql is a compiler/interpreter instead of just read a sqlite database with all commits, tags, etc. because we would need to sync the tables every time before run sql and we would have sqlite bases for each repository. 😐