Git Worktree
마지막 업데이트
git worktree를 사용하면 하나의 저장소가 각각 다른 브랜치에 있는 여러 작업 디렉터리를 동시에 가질 수 있습니다. 브랜치를 전환하기 위해 작업을 stash하는 대신, 다른 브랜치를 별도의 폴더에 체크아웃합니다 - PR을 리뷰하거나, 핫픽스를 실행하거나, 한 브랜치를 편집하면서 다른 브랜치를 빌드할 수 있으며, 모두 동일한 .git 히스토리를 공유합니다.
이것들을 터미널 플레이그라운드에서 사용해 보세요 - 브라우저 안의 실제 셸이며, 설치할 것이 없습니다.
구문
| Command | What it does |
|---|---|
git worktree add ../hotfix hotfix | 인접한 폴더에 hotfix를 체크아웃함 |
git worktree add -b new ../new | 브랜치와 그에 대한 worktree를 생성함 |
git worktree list | 모든 worktree와 해당 브랜치를 나열함 |
git worktree remove ../hotfix | worktree를 제거함 |
git worktree prune | 오래된 worktree 항목을 정리함 |
실전 예제
기능 브랜치를 건드리지 않고 main의 버그를 수정합니다.
| Step | Command | Result |
|---|---|---|
| 1 | git worktree add ../fix main | main을 ../fix에 체크아웃함 |
| 2 | ../fix에서 수정하고 커밋함 | main에서 핫픽스 완료 |
| 3 | git worktree remove ../fix | 정리; 기능 브랜치는 그대로 유지됨 |
git worktree 자주 묻는 질문
git worktree란 무엇인가요?
worktree는 동일한 저장소에 연결되어 다른 브랜치나 커밋으로 체크아웃된 추가 작업 디렉터리입니다. 여러 브랜치를 별도의 폴더에서 동시에 체크아웃한 상태로 둘 수 있으며, 모두 하나의
.git 히스토리를 공유합니다 - 그래서 두 브랜치에서 동시에 작업하기 위해 stash하거나 clone할 필요가 없습니다.worktree는 어떻게 추가하나요?
git worktree add <path> <branch>를 실행합니다. 예를 들어 git worktree add ../hotfix hotfix입니다. Git이 해당 브랜치를 새 폴더에 체크아웃합니다. 동시에 새 브랜치를 생성하려면 git worktree add -b <newbranch> <path>를 사용하세요.브랜치를 전환하는 대신 언제 worktree를 사용해야 하나요?
브랜치 전환이 방해가 될 때 사용하세요 - 커밋하지 않은 작업이 있거나, 중단하고 싶지 않은 긴 빌드가 있거나, 두 브랜치를 나란히 비교해야 할 때입니다. worktree는 현재 브랜치를 건드리지 않고 다른 브랜치를 자체 폴더에 제공합니다.
worktree는 어떻게 제거하나요?
git worktree remove <path>를 실행합니다. 폴더를 수동으로 삭제한 경우, git worktree prune을 실행해 오래된 관리 정보를 정리하세요. 메인 worktree(원래 저장소 폴더)는 제거할 수 없으며, 추가한 것들만 제거할 수 있습니다.이것을 온라인에서 연습할 수 있나요?
네. 터미널 플레이그라운드를 열어 브라우저 안의 실제 셸에서
git worktree를 실행하세요 - 설치할 것이 없습니다. Coddy의 무료 대화형 Git 코스에서도 브랜치 워크플로를 단계별로 다룹니다.