← 전체 글로 돌아가기

Git

사이드 프로젝트 릴리스 전 Git worktree로 핫픽스를 분리한 회고

배포 직전 작업과 긴급 수정을 한 브랜치에 섞지 않기 위해 Git worktree를 사용한 회고입니다.

배포 대기 코드 위에 수정하지 않기로 한 날

결제 문구를 다듬는 브랜치가 QA 중일 때 로그인 오류 제보가 왔습니다. 예전에는 같은 작업 폴더에서 급히 고쳐 배포 대기 변경까지 핫픽스에 섞었습니다. 이번에는 worktree를 하나 더 만들었습니다.

폴더를 둘로 나누는 명령

메인 저장소에서 현재 브랜치를 보존한 채 새 작업 폴더를 만듭니다.

git fetch origin
git worktree add ../app-hotfix -b fix/login-redirect origin/main
cd ../app-hotfix
git status

한 브랜치는 하나의 worktree에만 체크아웃됩니다. 처음에는 이 제약이 불편했지만 같은 파일을 두 방향에서 바꾸지 못하게 해 주었습니다.

핫픽스의 범위를 작게 유지한 방법

오류 재현 URL, 수정 파일, 확인 명령을 PR 설명에 세 줄로 제한했습니다. 여기서는 리다이렉트 조건 한 곳만 바꾸고 테스트를 실행했습니다.

pnpm test -- login
pnpm build
git diff origin/main...HEAD

회고: 폴더가 늘어도 판단은 줄었다

릴리스 작업 폴더는 그대로 두고 핫픽스만 검토할 수 있었습니다. 끝난 worktree는 병합 후 정리합니다.

git worktree remove ../app-hotfix
git worktree prune

다음 긴급 수정에서도 먼저 물을 질문은 하나입니다. 이 변경이 배포 대기 작업과 정말 같은 목적을 갖는가입니다.