Menu
Coddy logo textTech

Git Worktree

마지막 업데이트

git worktree를 사용하면 하나의 저장소가 각각 다른 브랜치에 있는 여러 작업 디렉터리를 동시에 가질 수 있습니다. 브랜치를 전환하기 위해 작업을 stash하는 대신, 다른 브랜치를 별도의 폴더에 체크아웃합니다 - PR을 리뷰하거나, 핫픽스를 실행하거나, 한 브랜치를 편집하면서 다른 브랜치를 빌드할 수 있으며, 모두 동일한 .git 히스토리를 공유합니다.

이것들을 터미널 플레이그라운드에서 사용해 보세요 - 브라우저 안의 실제 셸이며, 설치할 것이 없습니다.

구문

CommandWhat it does
git worktree add ../hotfix hotfix인접한 폴더에 hotfix를 체크아웃함
git worktree add -b new ../new브랜치와 그에 대한 worktree를 생성함
git worktree list모든 worktree와 해당 브랜치를 나열함
git worktree remove ../hotfixworktree를 제거함
git worktree prune오래된 worktree 항목을 정리함

실전 예제

기능 브랜치를 건드리지 않고 main의 버그를 수정합니다.

StepCommandResult
1git worktree add ../fix mainmain../fix에 체크아웃함
2../fix에서 수정하고 커밋함main에서 핫픽스 완료
3git 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 코스에서도 브랜치 워크플로를 단계별로 다룹니다.
Coddy programming languages illustration

Coddy로 Git 배우기

시작하기