본문 바로가기

직접 만든 소프트웨어, 두 가지 개발 기록

구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다.

소프트웨어개발

Git 브랜치가 다른 worktree에서 사용 중일 때: 강제 전환 전 확인 순서

by 아빠띠띠뽀 2026. 10. 28.

브랜치가 다른 worktree에서 이미 체크아웃됐다는 오류가 나오면 먼저 git worktree list로 경로를 찾으세요. 강제 옵션이나 폴더 삭제부터 실행하지 말고, 그 경로에서 작업 중인 변경이 있는지 확인하는 것이 우선입니다.

적용 환경: git worktree를 지원하는 Git 저장소; 연결된 작업 폴더 접근 가능. 자료 확인일: 2026-10-27. 문서 기반 안내이며 실제 운영 시험 결과가 아닙니다.

1. 원인: 저장소 하나에 작업 폴더가 여러 개

Git worktree는 한 저장소에 여러 작업 디렉터리를 연결할 수 있게 합니다. 이미 다른 작업 트리에서 체크아웃한 브랜치를 새 작업 트리에 사용하려 하면 기본적으로 거절됩니다.

오류를 브랜치 손상으로 단정하지 마세요. IDE나 자동화가 만든 폴더가 남아 있거나, 연결된 외장 디스크의 경로일 수도 있습니다. 실제 경로와 작업 소유자를 먼저 확인해야 합니다.

2. 해결: 읽기 전용 확인부터

대상 저장소에서 실행합니다. 아래 경로는 실제 목록에서 확인한 값으로 바꿉니다. 출력에 사내 경로가 있으면 외부 공유 전에 가리세요.

git worktree list
git -C /actual/worktree/path status --short
git -C /actual/worktree/path diff --stat
관찰 다음 판단
작업 폴더가 존재 그 폴더에서 계속할 수 있는지 확인
수정 파일이 존재 내용 보존과 담당자 확인
경로가 외장 디스크 마운트 여부부터 확인
다른 작업 목적 별도 브랜치 사용 여부 검토

3. 확인: 사용할 폴더와 브랜치를 일치

기존 폴더에서 계속하기로 했다면 현재 브랜치와 status를 다시 확인하고 그 경로를 편집기에 엽니다. 다른 폴더에서 새 작업이 필요하다면 기존 변경을 보존한 뒤 별도 브랜치를 쓰는 방안을 검토하세요.

이 과정은 원격 push나 병합 완료를 뜻하지 않습니다. 명령 출력과 실제 파일 내용을 대조하고 어떤 작업 디렉터리에서 다음 명령을 실행하는지 명시합니다.

4. 주의와 FAQ

경로가 없으면 prune부터 실행하나요? 외장 디스크나 네트워크 경로가 일시적으로 연결되지 않은 것인지 먼저 확인하세요. Git 문서는 이런 경로를 보호하기 위한 lock 기능도 설명합니다.

--force로 해결하면 되나요? 보호 조건을 무시하기보다 기존 작업을 확인하는 것이 우선입니다. 이 안내는 강제 체크아웃·폴더 삭제·메타데이터 정리를 실행하지 않습니다.

공식 출처와 관련 글

공식 문서: Git 브랜치가 다른 worktree에서 사용 중일 때: 강제 전환 전 확인 순서

Git 작업 트리·인덱스·HEAD 비교

 

git diff가 비어 있는데 변경이 남을 때: 작업 트리·인덱스·HEAD 비교

git add 뒤 일반 git diff가 비어 있다면 변경이 사라졌다고 판단하지 말고 git diff --cached를 확인하세요. 기본 diff는 작업 트리와 인덱스를, --cached는 인덱스와 HEAD를 비교합니다. 먼저 상태와 비교 범

papa-titipo.com

하나의 저장소와 여러 작업 폴더를 구분한 개념 그림
직접 생성한 개념 이미지입니다. 실제 서비스 화면이나 구축·성능 시험 결과가 아닙니다.