라이프스타일

Worktree와 작업 격리

Worktree는 하나의 Git 저장소에 다른 브랜치의 작업 폴더를 만듭니다. 파일이 분리되어도 DB, 포트와 외부 서비스는 공유될 수 있습니다.

읽는 데 약 15분 · 실습 20 분

작업 흐름을 설명하는 그림이며 제품 스크린샷이 아닙니다.
사진: Mokaair (© Mokaair)
이 글의 목차
  1. 목표와 준비
  2. 1단계: 개인 자료 없는 연습 저장소 생성
  3. 2단계: 두 번째 checkout 생성
  4. 3단계: 브랜치 사용 제한과 결과 저장
  5. Codex 데스크톱에서 같은 흐름
  6. 문제·정리·검증

목표와 준비

이 단락의 학습 자료:

Worktree는 같은 Git의 다른 checkout으로 파일과 인덱스는 분리되고 커밋·브랜치 정보는 공유합니다. 버그 수정과 기능 조사를 함께 하기에 좋지만 보안 샌드박스는 아닙니다. 같은 DB·클라우드 문서·포트는 충돌할 수 있으므로 폴더 이름 외에 담당 파일·외부 데이터·실행 서비스도 구분하세요.

1단계: 개인 자료 없는 연습 저장소 생성

Windows 탐색기·macOS Finder·Linux 파일 관리자로 실습 영역에 빈 worktree-lab을 만들고 그곳에서 터미널을 엽니다. 현재 경로와 운영 파일이 없는지 확인하세요. 아래 명령은 새 연습 저장소에만 실행하며 작성자 설정에 --global을 추가하지 않습니다.

세 OS 터미널: 새 worktree-lab 안 · sh
git init -b main
git config user.name "Codex Learner"
git config user.email "learner@example.test"
git status --short

아래 전체 내용으로 notes.md를 만듭니다. 구별되는 marker로 Codex의 설명과 별개로 비교할 수 있습니다. UTF-8 일반 텍스트와 확장자를 확인한 뒤 커밋하며 주변 파일이 들어가지 않도록 notes.md만 추가하세요.

worktree-lab/notes.md · markdown
# Worktree practice

Marker: LOCAL-A
실습 터미널: 기준 커밋 생성 · sh
git add -- notes.md
git commit -m "Add worktree practice baseline"
git status --short
git branch --show-current

main과 미커밋 없음 상태를 확인합니다. 실패하면 이 저장소 작성자 설정을 확인하고 조직 서명 정책은 바꾸지 마세요. 첫 커밋 전에는 HEAD 기준이 없으므로 먼저 완료합니다. 이름이 이미 있으면 사용하지 않는 연습 이름으로 일관되게 바꾸고 강제 덮어쓰지 않습니다.

2단계: 두 번째 checkout 생성

worktree-lab 터미널: 같은 상위 폴더에 사본 생성 · sh
git worktree add -b codex/worktree-practice ../worktree-copy
git worktree list

새 codex/worktree-practice 브랜치로 같은 상위 폴더의 worktree-copy를 만듭니다. 대상이 없는지 확인하고 list의 두 경로가 main과 새 브랜치인지, 두 문서가 LOCAL-A인지 확인하세요. Windows도 실제 worktree-lab 안이면 상대 경로를 쓸 수 있습니다. 를 참고하세요.

다른 창에서 worktree-copy/notes.md의 LOCAL-A만 COPY-B로 바꾸고 원래 창은 LOCAL-A인지 확인한 뒤 양쪽 상태와 차이를 봅니다. 같은 notes.md 탭 이름만 믿지 말고 전체 경로나 루트 이름을 표시하세요.

worktree-lab에서 두 폴더 비교 · sh
git status --short
git -C ../worktree-copy status --short
git -C ../worktree-copy diff -- notes.md

원본 status는 깨끗하고 사본의 notes.md만 수정되며 marker 한 줄 차이가 나야 합니다. 이는 파일 분리이며 main 병합은 아닙니다. 둘 다 바뀌면 창이 같은 폴더를 가리키는지, 둘 다 직접 수정했는지 확인한 뒤 커밋하세요.

3단계: 브랜치 사용 제한과 결과 저장

예상 실패: 원본이 main 사용 중 · sh
git -C ../worktree-copy switch main

Git은 같은 브랜치를 두 worktree에 checkout하는 것을 거부하고 main 사용 중이라고 알립니다. 두 폴더가 원래 브랜치에 남는 보호 동작이므로 강제나 제한 무시 옵션을 쓰지 마세요. 확인한 marker를 연습 브랜치에 커밋하고 원본에서 비교합니다. 커밋은 로컬에 있으며 GitHub에 자동 전송되지 않습니다.

COPY-B를 커밋하기 전에 제거 거부도 확인합니다. worktree list의 전체 경로로 ../worktree-copy가 이번 사본인지 확인한 뒤 아래 명령을 실행합니다. Git이 미커밋 변경 때문에 거부하고 폴더와 COPY-B가 남아야 합니다. 이미 커밋했다면 추가 변경 없이 건너뛰세요. 확인 후 다음 커밋을 진행하고 --force는 쓰지 않습니다.

원본 폴더: 커밋 전 제거 거부 확인 · sh
git worktree list
git worktree remove ../worktree-copy
git -C ../worktree-copy status --short
원본 터미널: 사본 커밋 후 브랜치 비교 · sh
git -C ../worktree-copy add -- notes.md
git -C ../worktree-copy commit -m "Change isolated practice marker"
git -C ../worktree-copy status --short
git diff main...codex/worktree-practice -- notes.md

Codex 데스크톱에서 같은 흐름

Git 프로젝트의 새 입력창 아래 Worktree와 시작 브랜치를 고르고 요청합니다. 미커밋 변경을 포함할 때는 해당 작업에 속하는지 확인하고 관련 없는 개인 자료를 넣지 마세요. 관리형은 처음 detached HEAD일 수 있으므로 오래 보존하려면 헤더 Create branch here로 브랜치를 만들고 검증·커밋합니다.

작업과 코드를 Local로 옮기려면 Hand off 후 폴더·브랜치·파일을 다시 확인하세요. 이동이 main 병합이나 배포를 뜻하지 않습니다. 각 OS의 사용 가능한 버전에서 조작하고 Linux에 기능이 없으면 Git 절차를 쓰며 차이를 기록합니다. 모바일 Remote에서도 worktree와 Git은 호스트에 남습니다.

자원자동 분리직접 확인
추적 파일·인덱스예편집기 실제 경로
커밋·브랜치공유checkout별 브랜치
의존성·빌드 캐시보통 개별 준비프로젝트 준비 절차
로컬 포트보장 안 됨미리 보기별 포트
DB·클라우드보장 안 됨연습 데이터·계정 범위

문제·정리·검증

설정이 없으면 .gitignore와 README를 보고 실습 설정을 만들며 운영 .env 전체 복사는 하지 않습니다. 관리형 로컬 .worktreeinclude 규칙은 이번 수동 Git worktree에 적용되지 않으므로 공식 자료와 을 확인하세요. 포트가 사용 중이면 다른 번호와 URL을 기록하며 다른 서비스는 중지하지 않습니다.

사본을 쓰는 창·터미널·미리 보기를 닫고 원본에서 list의 전체 대상 경로와 사본의 깨끗한 상태를 확인하세요. 결과를 codex/worktree-practice에 커밋한 뒤 제거하며 미커밋 파일은 먼저 보존하고 거부에 --force를 추가하지 않습니다. 원본과 커밋 브랜치를 남기고 이번 사본만 없앱니다.

원본: 경로 확인·사본 제거·커밋 결과 확인 · sh
git worktree list
git -C ../worktree-copy status --short
git worktree remove ../worktree-copy
git worktree list
git show codex/worktree-practice:notes.md

list에는 원본만, main 문서는 LOCAL-A, 브랜치 git show는 COPY-B여야 합니다. 분리 상태와 브랜치 사용 거부 기록을 더해 생성·분리·보존·제거를 검증합니다. Git 시험과 데스크톱 Handoff를 구분하고 미실행 플랫폼은 공식 문서 확인으로 표시하세요. 다음은 입니다.

27. Worktree와 작업 격리 — 작업 흐름을 설명하는 그림이며 제품 스크린샷이 아닙니다. Repository → Worktree A / B → Integration
27. Worktree와 작업 격리 — 작업 흐름을 설명하는 그림이며 제품 스크린샷이 아닙니다. Repository → Worktree A / B → Integration · 사진: Mokaair (© Mokaair)
자세한 설명 보기

Repository to Worktree A / B to Integration

전체 목차

  • 라이프스타일

    Codex 학습 센터: 전체 튜토리얼 목차

    설치와 첫 작업부터 MD 지침과 고급 연동까지 60개 강의, 열 개 단원을 계획합니다. 수준, 환경, 목표, 명령으로 다음 글을 찾고 미게시 항목의 상태를 확인할 수 있습니다.

  • 라이프스타일

    실습: 작은 웹사이트 만들기

    brief.md에서 Small Steps 할 일 사이트를 계획하고 추가·완료·삭제·필터·로컬 저장을 구현합니다. HTML·CSS·데이터 함수·화면 이벤트·시험을 분리하고 Node와 브라우저로 검증한 뒤 재시작·복원 인계 기록을 남깁니다.

  • 라이프스타일

    사용량과 효율: 재작업 줄이기

    조건, 모델 선택, 시간, 결과를 기록해 불필요한 재시도와 과도한 문맥을 줄입니다.

  • 라이프스타일

    기존 코드베이스 이해

    읽기 흐름으로 진입점, 데이터 흐름, 테스트를 찾아 파일 근거가 있는 프로젝트 지도를 만듭니다.

최신 여행 소식·가이드

출처

라이프스타일