Worktree
worktree는 같은 저장소의 다른 브랜치를 별도 폴더에 체크아웃합니다. 에이전트마다 worktree를 하나씩 주면 여러 에이전트가 같은 프로젝트에서 동시에 일해도 서로의 파일을 건드리지 않습니다. PATerminal은 worktree를 만들고 새 세션으로 여는 것까지 한 번에 해 줍니다.
PATerminal v1.8.3 기준
worktree 만들기
- 저장소 안의 페인에서 페인 바의 Worktree를 클릭합니다(브랜치 목록에도 있습니다).
- 만들 대상에서 브랜치 또는 풀 리퀘스트를 고릅니다.
- 기준 브랜치(또는 풀 리퀘스트)를 고르고 새 브랜치 이름을 입력합니다.
- 저장 위치와, 원하면 세션 메모를 정합니다.
- 만들기를 누릅니다. worktree 폴더에서 새 세션이 열립니다.
worktree가 만들어지는 위치
- 저장소 밖(기본값)
- worktree는 저장소 이름의 폴더에 모입니다(예:
~/worktrees/acme-app/feature-login). 절대 경로,~,..를 입력할 수 있습니다..gitignore는 건드리지 않습니다. - 저장소 안
- worktree가 저장소 안의 폴더에 만들어집니다. 그 폴더가 아직 무시 대상이 아니면 루트
.gitignore에 추가됩니다(일반적인 소스 변경으로 남습니다).
무시된 파일 복사
새 worktree에는 git이 무시하는 파일이 하나도 없어서 보통 바로 실행할 수 없습니다. 환경 파일(gitignore 대상): 이어받기(기본값)를 고르면 PATerminal이 .env, node_modules, .venv 같은 파일을 현재 체크아웃에서 새 worktree로 복사하며, 진행 상황도 표시합니다. 건너뛰려면 이어받지 않음을 고르세요.
풀 리퀘스트에서 worktree 만들기
원본으로 풀 리퀘스트를 고르면 열려 있는 풀 리퀘스트가 나열됩니다(gh 사용). PATerminal은 PR 브랜치로 worktree를 만들고 세션으로 엽니다. 메인 체크아웃은 그대로 둔 채 PR을 리뷰하거나 고칠 때 이상적입니다. 그 브랜치의 worktree가 이미 있으면 재사용합니다.
worktree 관리
Git 창의 worktree 목록에는 모든 worktree가 브랜치와 상태(현재, 메인, 잠김, 없음)와 함께 표시됩니다. 하나씩 삭제하거나, 여러 개를 골라 선택 항목 삭제를 누르세요. worktree를 삭제해도 브랜치는 남으며, 메인과 현재 worktree는 삭제할 수 없습니다. 로컬 변경 때문에 Git이 거부하면 강제 삭제가 제시됩니다.
worktree 기본값
설정 → Worktree 기본 위치에서 기본 위치와 무시된 파일 복사 여부를 정합니다. Automatically fill in the branch name을 켜면 날짜, 시각, 짧은 무작위 접미사로 이름이 만들어집니다. 이 기본값은 이슈나 페어 모드로 worktree를 만들 때도 적용됩니다.
아직 해결되지 않았나요?
FAQ를 확인하거나 OS, PATerminal 버전, 시도해 본 내용을 적어 이메일로 문의해 주세요. 모든 메일에 답장해 드립니다.