그래프 기반의 git 저장소 관리 도구
안녕하세요.
Git 저장소의 브랜치와 커밋 흐름을 조금 더 직관적으로 확인하고 관리할 수 있는 TUI 도구인 Graphkeeper라는 도구를 만들어서 사용해보고있습니다. 아직은, 컨셉 단계입니다.. ㅠ
오늘 v0.1.0-alpha.4 버전을 태깅했고, 아직은 완성된 제품이라기보다 핵심 컨셉과 워크플로를 검증하는 MVP 단계입니다.
Graphkeeper는 Git 그래프를 여러 정보 중 하나로 보여주는 방식이 아니라, 그래프 자체를 중심 작업 공간으로 사용하는 것을 목표로 합니다.
개발하면서 다음과 같은 상황에서 불편함을 자주 느꼈습니다.
여러 브랜치가 어디에서 분기됐는지 빠르게 파악하기 어려움
현재 브랜치가 upstream보다 ahead, behind, diverged 상태인지 한눈에 보기 어려움
merge, rebase, reset 중 어떤 작업이 적절한지 그래프와 함께 판단하고 싶었던 경험
특정 커밋을 기준으로 태그나 브랜치 작업을 수행하고 싶었던 경험
장기간 운영되는 저장소의 브랜치 관계를 지속적으로 확인해야 하는 케이스..
현재 Graphkeeper에서는 다음과 같은 기능을 제공하고 있습니다.
커밋 그래프 탐색
로컬 및 원격 브랜치 확인
ahead, behind, diverged 상태 확인
브랜치 checkout 및 삭제
merge, rebase, reset
push, pull
태그 생성, push, 삭제
stash 및 working tree 정리
저는 neovim 환경에서 작업시 Lazygit이라는 툴을 자주 사용했었습니다.
Graphkeeper의 목표는 Lazygit의 대체가 아닌 형상을 관리하는 관리자 입장에서 그래프기반의 staging, diff 탐색, 커밋 작성, conflict resolution까지 모두 제공하기보다는, 브랜치와 커밋의 topology를 이해하고 저장소 운영 결정을 내리는 작업에 집중하고싶었습니다.
아직 초기 버전이라 UI, 단축키, 정보 구조는 계속 변경될 수 있습니다.
현재는 기능 제안보다 아래와 같은 컨셉 검증 피드백을 받고 싶습니다.
Git 그래프를 중심으로 작업하는 방식이 실제로 유용해 보이는지
merge, rebase, reset, tagging 판단에 필요한 정보가 충분히 보이는지
실제 업무 중 어떤 상황에서 이 도구를 실행할 것 같은지
현재 화면이나 워크플로에서 이해하기 어려운 부분은 무엇인지
독립적인 TUI와 Neovim 연동 중 어느 방식이 더 유용할지
특히 여러 브랜치를 운영하거나 Git 히스토리를 자주 확인하는 분들의 의견을 듣고 싶습니다.
GitHub 저장소
https://github.com/hrllk/graphkeeper
컨셉 검증 Discussion
https://github.com/hrllk/graphkeeper/discussions/1
MIT License로 공개되어 있습니다.
긍정적인 의견뿐 아니라 “이 방식은 굳이 필요하지 않을 것 같다”, “기존 도구와 차별점이 부족하다” 같은 비판적인 의견도 큰 도움이 됩니다.