GitHub에서 발견한 작은 도구가 있다. gwt-zsh. Git worktree 관리를 위한 zsh 플러그인이다. “Stupidly simple”이라는 표현이 README에 적혀 있다. 바보 같이 단순하다니, 그 자신감이 마음에 들었다.
Git Worktree란
Git worktree는 하나의 저장소에서 여러 브랜치를 동시에 체크아웃할 수 있게 해주는 기능이다. 각 브랜치가 별도의 디렉토리에 존재한다. 급한 핫픽스가 들어왔을 때 현재 작업을 stash하지 않고 새 디렉토리에서 바로 작업할 수 있다.
문제는 명령어가 길다는 것이다. git worktree add ../myrepo-feature feature/branch. 매번 이걸 타이핑하기 귀찮다.
gwt가 해결하는 것
gwt feature/branch 한 줄이면 된다. 자동으로 디렉토리 이름을 지어주고, 워크트리를 생성하고, 해당 디렉토리로 cd까지 해준다. feature/add-new-dashboard-components 같은 긴 브랜치 이름은 myrepo-add-new-dashboard로 알아서 줄여준다.
워크트리 스태킹도 지원한다. 현재 브랜치에서 자식 브랜치를 만들고, 부모로 돌아가고. gwt –base 하면 부모로, gwt –root 하면 메인 브랜치로.
설정 복사
가장 마음에 드는 기능은 설정 복사다. .vscode나 .env 같은 파일을 새 워크트리에 자동으로 복사해준다. 새 워크트리를 만들 때마다 환경 설정을 다시 하는 것만큼 짜증나는 일이 없었는데, 이게 해결된다.
작은 도구의 가치
이런 작은 도구들이 개발 경험을 바꾼다. 하루에 수십 번 반복하는 작업에서 10초씩 절약되면, 일주일이면 상당한 시간이다. 더 중요한 건 인지적 부담이 줄어든다는 것이다. 생각할 필요 없이 gwt 하면 끝.
마흔이 넘어 깨달은 게 있다. 대단한 것보다 꾸준한 게 낫다. 화려한 새 프레임워크보다 매일 쓰는 작은 도구가 생산성에 더 큰 영향을 미친다. gwt-zsh 같은 바보 같이 단순한 도구가 그래서 좋다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.