Codex 작업 파일이 현재 브랜치에 안 보일 때: Worktree 확인 순서
Codex가 작업을 마쳤는데 평소 쓰는 폴더나 현재 브랜치에 수정 파일이 보이지 않는다면 작업을 삭제하거나 Git을 초기화하지 말고, 먼저 그 작업이 Local과 Worktree 중 어디에서 실행됐는지 확인하세요. Worktree 작업은 원래 로컬 체크아웃과 다른 폴더에서 진행되므로, 로컬 git status가 깨끗해도 변경이 사라졌다고 단정할 수 없습니다.
먼저 파일이 사라진 것인지 다른 작업 폴더에 있는지 구분하세요
OpenAI의 Worktree 공식 문서에 따르면 Codex의 Worktree는 같은 Git 저장소를 별도 체크아웃으로 열어 여러 작업을 서로 방해하지 않고 진행하는 환경입니다. 저장소의 커밋과 브랜치 정보는 공유하지만, 각 Worktree의 실제 파일과 HEAD, 인덱스는 서로 분리됩니다.
따라서 다음 두 상태는 동시에 성립할 수 있습니다.
- 평소 쓰는 Local 폴더의
git status에는 변경이 없습니다. - Codex 작업이 실행된 Worktree에는 수정 파일이 남아 있습니다.
먼저 해당 Codex 작업을 다시 열고, 작업 안의 통합 터미널에서 아래 읽기 전용 명령을 실행하세요. 파일을 이동하거나 브랜치를 바꾸지 않고 현재 위치와 상태만 확인합니다.
git rev-parse --show-toplevel
git status --short --branch
git branch --show-current
git worktree list --porcelain
git log -1 --oneline --decorate
첫 번째 명령의 경로가 평소 쓰는 프로젝트 폴더와 다르면 Worktree에서 작업 중인 것입니다. git branch --show-current가 아무것도 출력하지 않고 git status --short --branch 첫 줄에 HEAD (no branch)가 보이면 변경이 사라진 것이 아니라 브랜치에 연결되지 않은 detached HEAD 상태일 수 있습니다. Codex가 관리하는 Worktree는 기본적으로 이 상태에서 시작한다고 공식 문서에 설명되어 있습니다.

가장 빠른 해결은 작업을 다시 열고 목적에 맞는 이동 방법을 고르는 것입니다
파일 위치를 확인했다면 곧바로 수동 복사하거나 강제로 브랜치를 전환하지 말고, 앞으로 어디에서 계속 작업할지 먼저 정하세요.
| 원하는 결과 | 먼저 할 일 | 이유 |
|---|---|---|
| 평소 로컬 폴더와 IDE에서 검토하고 싶음 | 작업 환경 메뉴에서 로컬 선택 |
현재 작업을 Local 환경에서 이어갈 수 있음 |
| 현재 Worktree에서 계속 테스트하고 push할 예정 | 환경 패널의 브랜치 생성 선택 |
현재 Worktree의 변경 사항을 이름 있는 브랜치에 연결할 수 있음 |
| 어디에 변경이 있는지 아직 모름 | git status와 git worktree list --porcelain만 기록 |
상태를 바꾸지 않고 작업 폴더와 브랜치를 찾을 수 있음 |
| 같은 브랜치가 다른 Worktree에서 사용 중이라는 오류가 남 | 강제로 checkout하지 말고 환경 메뉴에서 로컬로 이동 |
Git은 같은 브랜치를 여러 Worktree에서 동시에 체크아웃하지 못하게 제한함 |
Codex의 환경 메뉴에서는 현재 작업을 Local, 현재 로컬 Worktree 또는 Cloud에서 이어갈 위치를 선택할 수 있습니다. 현재 Worktree에서 작업을 마무리하려면 환경 패널의 브랜치 생성을 사용해 브랜치를 만든 뒤 변경 사항을 검토할 수 있습니다.
UI 이름과 위치는 Codex 앱 업데이트와 표시 언어에 따라 달라질 수 있으므로, 실제 사용 중인 앱 화면을 기준으로 확인하세요. OpenAI 공식 문서는 Worktree가 별도 체크아웃이고 Local과 Worktree 사이에서 작업을 이어갈 수 있다는 구조를 설명하는 근거로 사용하되, 현재 버튼 이름은 실제 앱 화면을 우선합니다.
Local과 Worktree의 상태를 같은 기준으로 비교하세요
현재 위치만 보고 판단하면 다른 체크아웃의 변경을 놓치기 쉽습니다. Codex 작업 터미널과 평소 로컬 터미널에서 각각 아래 명령을 실행해 경로, 브랜치, 변경 수를 비교하세요.
git rev-parse --show-toplevel
git status --short --branch
git rev-parse HEAD
git diff --stat
git diff --cached --stat
명령의 의미는 다음과 같습니다.
git rev-parse --show-toplevel: 지금 보고 있는 체크아웃의 루트 경로를 표시합니다.git status --short --branch: 현재 브랜치 또는 detached HEAD와 수정·추가 파일을 함께 보여줍니다.git rev-parse HEAD: 두 폴더가 같은 시작 커밋을 보고 있는지 비교할 수 있습니다.git diff --stat: 아직 stage하지 않은 변경의 파일 수와 크기만 요약합니다.git diff --cached --stat: stage된 변경의 요약을 표시합니다.
이 명령들은 파일 내용이나 Secret 값을 출력하지 않지만, 실제 경로와 브랜치 이름에는 조직명이나 업무명이 들어갈 수 있습니다. 캡처를 공유하기 전에는 경로, 저장소명, 브랜치명과 커밋 메시지를 가리세요.



detached HEAD는 오류가 아니지만 그대로 떠나기 전에는 확인이 필요합니다
Codex가 만든 관리형 Worktree는 선택한 시작 브랜치의 HEAD 커밋에서 생성되고 기본적으로 detached HEAD를 사용합니다. 이는 여러 Worktree를 만들면서 사용자의 브랜치 목록을 불필요하게 늘리지 않기 위한 정상 상태입니다.
다만 detached HEAD에서 수정한 뒤 작업 위치를 잊으면 평소 브랜치에서는 파일이 보이지 않습니다. 이때는 다음 순서가 안전합니다.
- 해당 Codex 작업을 다시 엽니다.
- 통합 터미널에서
git status --short --branch로 변경 파일이 있는지 확인합니다. - Local에서 계속할 목적이면 작업 환경 메뉴의
다음에서 계속에서로컬을 선택합니다. - Worktree에서 계속할 목적이면 환경 패널의
브랜치 생성으로 새 브랜치를 만듭니다. - 대상 폴더에서 다시
git status --short --branch를 실행해 변경이 원하는 위치에 있는지 확인합니다.
작업을 찾기 전에 git reset --hard, git clean, 강제 checkout, Worktree 삭제를 실행하지 마세요. 이 명령들은 위치를 찾는 데 필요하지 않으며, 아직 커밋하지 않은 변경을 잃게 만들 수 있습니다.
같은 브랜치가 다른 Worktree에서 사용 중이면 강제로 빼앗지 마세요
Git의 공식 Worktree 문서는 하나의 저장소에 여러 작업 트리를 둘 수 있지만, 이미 다른 Worktree에서 체크아웃한 브랜치를 새 Worktree에서 다시 쓰는 작업은 기본적으로 거부한다고 설명합니다. Codex 공식 문서도 한 브랜치는 한 Worktree에서만 체크아웃할 수 있다고 안내합니다.
오류에 already used by worktree 또는 비슷한 문구가 보이면 먼저 아래 명령으로 어느 경로가 그 브랜치를 사용 중인지 확인하세요.
git worktree list --porcelain
출력에서 각 worktree 경로와 branch refs/heads/... 항목을 짝으로 봅니다. 해당 브랜치가 Codex Worktree에 연결되어 있다면 로컬에서 강제 checkout하기보다 그 Codex 작업을 열어 작업 환경 메뉴에서 로컬을 선택하는 편이 안전합니다. Worktree에서 계속할 계획이라면 로컬은 다른 브랜치를 유지하고 해당 Worktree에서 검토하세요.
작업 환경 이동이 실패하면 변경을 건드리지 않고 증거부터 남기세요
Local 또는 Worktree로 이동하는 과정이 중간에 멈추거나 브랜치 충돌 메시지가 나온다면 같은 작업을 여러 번 강제로 반복하기 전에 아래 정보를 저장하세요.
git status --short --branch
git rev-parse --show-toplevel
git rev-parse HEAD
git worktree list --porcelain
그다음 다음 네 가지를 확인합니다.
- Local과 Worktree가 같은 저장소인지 루트 경로와 Worktree 목록으로 확인합니다.
- 이동하려는 브랜치가 다른 Worktree에 이미 연결되어 있는지 확인합니다.
- 변경 파일이 커밋 전인지, 커밋은 되었지만 브랜치가 없는 상태인지 확인합니다.
- Codex 작업을 보관하거나 Worktree를 지우기 전에 작업 제목과 현재 커밋을 기록합니다.
Codex 관리형 Worktree는 앱이 정리하기 전에 스냅샷을 보관하고, 삭제된 Worktree의 작업을 다시 열 때 복원 선택지를 제공할 수 있다고 공식 문서에 안내되어 있습니다. 그러나 사용자가 파일 탐색기나 Git 명령으로 Worktree 폴더를 직접 지운 경우까지 같은 복원을 보장하는 내용은 아닙니다. 복원 기능에 의존하기보다 먼저 현재 Worktree에서 변경을 확인하고 안전한 이동을 완료하세요.
자주 묻는 질문
Local의 git status가 깨끗하면 Codex 변경이 없는 것인가요?
아닙니다. Codex 작업이 Worktree에서 실행됐다면 Local과 다른 폴더에 수정 파일이 있을 수 있습니다. 해당 작업의 통합 터미널에서 git rev-parse --show-toplevel과 git status --short --branch를 다시 확인하세요.
HEAD (no branch)는 작업 실패라는 뜻인가요?
Codex 관리형 Worktree에서는 기본적으로 나타날 수 있는 정상 상태입니다. Local에서 계속하려면 작업 환경 메뉴에서 로컬을 선택하고, Worktree에서 계속 관리하려면 브랜치 생성을 사용한 뒤 상태를 다시 확인하세요.
Worktree 폴더를 직접 복사해도 되나요?
단순 복사는 Git의 브랜치와 stage 상태, 삭제 파일을 빠뜨릴 수 있습니다. 현재 위치와 변경 목록을 먼저 기록하고 Codex 환경 메뉴의 로컬 이동 또는 Worktree의 브랜치 생성 흐름을 사용하는 편이 안전합니다.
정리
Codex 작업 파일이 현재 브랜치에서 보이지 않을 때는 삭제로 단정하지 말고 해당 작업 다시 열기 → Local/Worktree 경로 비교 → Git 상태 확인 → 로컬 이동 또는 브랜치 생성 선택 순서로 처리하세요. 다음 행동은 작업을 닫기 전에 두 터미널에서 git status --short --branch와 git worktree list --porcelain 결과를 비교하는 것입니다.