# GQL - Git Query Language

> Clean Markdown view of GeekNews topic #12190. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=12190](https://news.hada.io/topic?id=12190)
- GeekNews Markdown: [https://news.hada.io/topic/12190.md](https://news.hada.io/topic/12190.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2023-12-06T09:55:19+09:00
- Updated: 2023-12-06T09:55:19+09:00
- Original source: [github.com/AmrDeveloper](https://github.com/AmrDeveloper/GQL)
- Points: 17
- Comments: 5

## Topic Body

- SQL과 비슷한 문법으로 DB대신 .git 파일에 대해서 쿼리 가능한 언어   
- 작은 엔진이 별도의 DB 또는 변환없이 Repo에 대한 실시간 질의 수행   
- SQL의 대부분 문법 지원 (그룹핑, 정렬, 집계 포함)  
- Rust 오픈소스   
```  
SELECT DISTINCT title AS tt FROM commits  
SELECT name, COUNT(name) AS commit_num FROM commits GROUP BY name ORDER BY commit_num DESC LIMIT 10  
SELECT commit_count FROM branches WHERE commit_count BETWEEN 0 .. 10  
  
SELECT * FROM refs WHERE type = "branch"  
SELECT * FROM refs ORDER BY type  
  
SELECT * FROM commits  
SELECT name, email FROM commits  
SELECT name, email FROM commits ORDER BY name DESC, email ASC  
SELECT name, email FROM commits WHERE name LIKE "%gmail%" ORDER BY name  
SELECT * FROM commits WHERE LOWER(name) = "amrdeveloper"  
SELECT name FROM commits GROUP By name  
SELECT name FROM commits GROUP By name having name = "AmrDeveloper"  
  
SELECT * FROM branches  
SELECT * FROM branches WHERE is_head = true  
SELECT name, LEN(name) FROM branches  
  
SELECT * FROM tags  
SELECT * FROM tags OFFSET 1 LIMIT 1  
```

## Comments



### Comment 21336

- Author: yangeok
- Created: 2023-12-11T11:37:07+09:00
- Points: 1

awesome

### Comment 21199

- Author: eususu
- Created: 2023-12-06T15:40:20+09:00
- Points: 2

설치하고, CLI에서 직접 쿼리를 입력하는게 안되서 아쉬웠습니다.  
그런데 저장소를 직접 빌드해서 사용하면 직접 쿼리를 던지는 옵션을 사용 할 수 있네요.  
  
아마 다음 버전에 추가될 예정인가 봅니다  
  
cargo run -- -q "SELECT * FROM tags"  
  
이런식으로 사용하면 됩니다.  
이제 DevOps 작업에 사용 할 수 있습니다. :)

### Comment 21226

- Author: galadbran
- Created: 2023-12-07T12:28:21+09:00
- Points: 1
- Parent comment: 21199
- Depth: 1

큰 저장소에 사용시에 혹시 속도는 괜찮으시던가요? 궁금합니다 ^^

### Comment 21190

- Author: quack337
- Created: 2023-12-06T13:24:25+09:00
- Points: 1

오! git log --numstat 출력을 파싱해서 DB에 넣어 놓고, SQL로 분석하는 귀찮은 작업을 종종하는데, 이거 하나면 되겠군요.

### Comment 21165

- Author: kuroneko
- Created: 2023-12-06T10:02:55+09:00
- Points: 1

오... 깃 작업할 때 명령어 이것저것 쓰는 것보다 편해 보이기도 하네요.
