GitFrame은 터미널에서 Git 변경 사항을 검토하고, 소스 코드를 둘러보며, 커밋 기록과 브랜치를 탐색하는 작업 공간이다. 저장소, 워크트리, 파일 경로, 현재 상태, 커밋, 비교 기준을 코드의 맥락으로 보존해 사용자가 무엇을 보고 변경하는지 파악하도록 돕는다. 프로젝트는 GitHub 저장소에서 확인할 수 있다.
주요 기능과 화면
저장소와 브랜치를 전환하고 Vim 방식의 키로 탐색할 수 있다. 변경 사항 화면에서는 통합 또는 나란히 보기 방식으로 차이를 검토하고, 변경 사항을 스테이징하거나 커밋하고 동기화할 수 있다. 저장소 화면에서는 전체 소스 파일과 저장소를 둘러보고, 기록 화면에서는 커밋과 변경된 파일을 확인한다. 비교 화면에서는 병합 기준 커밋(merge-base)을 사용해 브랜치를 비교한다.
GitFrame은 작업 트리와 인덱스, 저장소 소스, 커밋과 커밋 범위, 현재 HEAD와 선택한 기준 브랜치 비교를 각각 네 화면으로 나눈다.
| 키 | 화면 | 초점 |
|---|---|---|
1 | Changes | 작업 트리와 인덱스 |
2 | Repository | 저장소 소스 |
3 | History | 커밋과 커밋 범위 |
4 | Compare | 현재 HEAD와 선택한 기준 브랜치 |
설치
Homebrew 또는 mise로 설치하거나 소스에서 빌드할 수 있다. Homebrew와 mise는 GitHub Releases의 사전 빌드 바이너리를 사용하므로 이 설치 방법에는 Zig 컴파일러가 필요하지 않다.
사전 빌드 바이너리는 Apple Silicon을 탑재한 macOS 15 이상과 x86_64, 커널 5.15 이상, glibc 2.35 이상을 사용하는 Linux를 지원한다.
GitFrame은 대화형 터미널에서 실행하며, PATH에 Git 2.45.1 이상이 있어야 한다. 설치된 버전은 git --version으로 확인한다. Homebrew는 Git을 의존 항목으로 설치한다. mise를 사용하거나 소스에서 빌드할 때는 Git을 별도로 설치해야 한다. Git 업데이트와 시작 오류는 요구 사항 문제 해결 안내를 참고한다.
Homebrew
Homebrew를 설치한 뒤 다음 명령을 실행한다.
brew install hiroaqii/tap/gitframe
Apple Silicon에서는 ARM용 Homebrew를 사용한다. GitFrame을 업데이트하려면 다음 명령을 실행한다.
brew update
brew upgrade hiroaqii/tap/gitframe
mise
mise를 설치하고 셸에서 활성화한 뒤 다음 명령을 실행한다.
mise use -g github:hiroaqii/gitframe@latest
이 설정은 mise를 사용하는 셸에서 GitFrame을 전역으로 사용할 수 있게 한다. 업데이트 명령은 다음과 같다.
mise upgrade github:hiroaqii/gitframe
기본 설정에서는 mise가 @latest로 새로 공개된 릴리스를 선택하기까지 24시간을 기다린다. 자세한 내용은 mise의 최소 릴리스 경과 시간 설정을 참고한다.
소스에서 빌드
Zig으로 GitFrame을 빌드하고 바이너리를 설치하는 방법은 안내 문서의 소스 빌드 지침을 참고한다.
설치 확인과 시작
GitFrame을 사용할 수 있는지 확인하려면 다음 명령을 실행한다.
gitframe --version
gitframe --help
스테이징된 변경 사항과 스테이징되지 않은 변경 사항을 검토하려면 Git 워크트리 안에서 다음 명령을 실행한다.
gitframe
주요 화면에서 ?를 누르면 도움말이 표시되고, q를 누르면 종료한다. 사용 가능한 명령줄 옵션은 gitframe --help로 확인할 수 있다. 사용법, 설정, 문제 해결, 개발 지침은 안내 문서에 있다.
범위와 구조
GitFrame은 전체 텍스트 편집기나 IDE, 모든 Git 명령을 대체하는 도구, 대화형 리베이스 또는 커밋 그래프 작업 공간, 특정 호스팅 서비스 전용 클라이언트나 웹 인터페이스를 제공하려는 프로젝트가 아니다. 네이티브 Windows 지원도 범위에 포함되지 않는다.
GitFrame은 Zig으로 작성됐다. 터미널 런타임과 효과 경계에는 Chasen, 재사용 가능한 TUI 구성 요소에는 Chasen UI, 선택적 구문 강조에는 flow-syntax를 사용한다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요