기능을 만들던 중 급한 수정 요청이 들어오면 어떻게 할까? 아직 커밋하기 애매한 코드를 잠시 치워야 할 때가 있다. 이럴 때 알아두면 편한 명령어가 git worktree다.
하나의 저장소에 작업 폴더를 추가해서, 서로 다른 브랜치를 각각 열어둘 수 있다. 기존 폴더는 그대로 두고 옆 폴더에서 수정 작업을 시작해 보자.
1. 작업 폴더 만들기
아래 예시는 저장소 폴더가 my-app이고, 기준 브랜치가 로컬 main인 경우다. 폴더 이름과 브랜치 이름은 프로젝트에 맞게 바꾸자. fix/login은 새로 만들 브랜치이므로 아직 없어야 한다.
my-app 안에서 실행한다.
git worktree add -b fix/login ../my-app-login main
명령어의 각 부분은 다음과 같다.
-b fix/login: 새 브랜치 만들기../my-app-login: 새 작업 폴더의 위치main: 새 브랜치가 시작할 커밋의 기준
이제 폴더 두 개를 각각 에디터에서 열면 된다.
프로젝트 상위 폴더/
├── my-app/ ← 기존 작업
└── my-app-login/ ← 로그인 수정
기존 폴더의 미커밋 변경 사항은 새 폴더로 복사되지 않는다. 위 명령은 로컬 main의 커밋을 기준으로 시작한다. 최신 원격 내용을 기준으로 작업해야 한다면 먼저 git fetch origin을 실행하고, 마지막의 main 대신 origin/main을 지정하자.
2. 새 폴더에서 수정하고 커밋하기
cd ../my-app-login
git status
여기서 필요한 파일을 수정하고 테스트한 다음, 수정한 파일을 지정해서 커밋한다. 예를 들어 README.md를 수정했다면 다음과 같다.
git add README.md
git commit -m "Fix login"
작업 파일과 스테이징 영역은 폴더마다 따로 관리된다. 커밋 이력과 브랜치 정보는 공유하므로, 원래 폴더에서도 방금 만든 커밋을 확인할 수 있다.
3. 작업 폴더 목록 확인하기
폴더가 늘어나면 다음 명령으로 위치와 브랜치를 확인하자.
git worktree list
이미 존재하는 브랜치를 열 때는 -b를 빼면 된다.
git worktree add ../my-app-review feature/profile
이 예시는 로컬에 feature/profile 브랜치가 있고, 다른 작업 폴더에서 사용 중이지 않다는 전제다. 같은 브랜치를 여러 worktree에서 동시에 체크아웃하려고 하면 기본적으로 거부된다. 먼저 목록을 보고 해당 폴더로 이동하자.
4. 반영한 뒤 작업 폴더 정리하기
커밋했다고 main에 자동으로 반영되는 것은 아니다. 팀 프로젝트라면 평소처럼 브랜치를 push하고 PR로 반영하면 된다.
혼자 연습하는 저장소에서는 아래처럼 반영할 수 있다. 원래 폴더의 작업을 먼저 커밋하거나 따로 보관하고, main으로 전환해도 되는 상태인지 확인하자.
cd ../my-app
git status
git switch main
git merge --ff-only fix/login
--ff-only 병합이 실패하면 두 브랜치의 이력이 갈라졌을 수 있다. 그때는 정리를 진행하기 전에 프로젝트의 병합 방식에 따라 반영하자.
반영을 확인한 뒤, 추가한 작업 폴더를 제거한다.
git worktree remove ../my-app-login
git branch -d fix/login
폴더 제거와 브랜치 삭제는 별도 작업이다. 폴더에 미커밋 변경이나 추적되지 않는 파일이 있으면 일반적인 remove는 거부된다. 해당 폴더에서 git status로 남은 파일부터 확인하자.
개발 서버를 두 개 띄운다면
Git 작업 폴더를 나눴다고 실행 환경까지 자동으로 분리되지는 않는다. 예를 들어 두 폴더에서 같은 포트로 개발 서버를 실행하려 하면 충돌할 수 있다. 하나는 3000, 다른 하나는 3001처럼 프로젝트 설정에 맞게 나누자.
또한 Git으로 추적하지 않는 .env나 설치된 의존성이 새 폴더에 준비되어 있다고 가정하면 안 된다. 각 폴더에서 프로젝트의 환경 설정과 설치 절차를 확인하자. 같은 데이터베이스에 연결한다면 데이터 변경도 서로 영향을 줄 수 있다.
처음에는 기존 폴더 하나와 급한 수정용 폴더 하나만 사용해 보자. 작업을 잠시 치우는 일이 반복될 때 특히 편리하다.
함께 읽기
참고 자료
공식 문서 확인: 2026년 10월 2일. 핵심 작업 흐름은 임시 저장소에서 실행해 확인했다.