git worktree remove branch를 한 번에 정리하는 명령으로 생각하기 쉽지만, git worktree remove가 성공한 뒤 작업 브랜치가 남는 것은 정상일 수 있다. 이 명령은 연결된 작업 폴더와 등록 정보를 제거하며 로컬 브랜치 ref까지 자동으로 지우지 않는다. 브랜치를 바로 강제 삭제하지 말고 목록과 병합 여부를 확인한 뒤 별도로 결정한다.
git worktree list
git show-ref --verify --quiet refs/heads/작업브랜치 && echo "브랜치 남음"
git branch --merged
첫 명령의 목록에서 제거한 경로가 사라졌고, 두 번째 명령이 브랜치 남음을 출력하면 worktree 제거는 끝났고 브랜치만 남은 상태다.

목차
worktree와 브랜치는 무엇이 다른가
worktree는 파일이 있는 작업 디렉터리이고, 브랜치는 커밋을 가리키는 별도 이름이다.
worktree는 특정 커밋이나 브랜치를 파일로 펼쳐 둔 작업 디렉터리다. 브랜치는 커밋을 가리키는 Git ref다. 폴더를 정리했다고 커밋을 가리키는 이름까지 불필요하다고 Git이 대신 판단할 수는 없다.
Git 2.38.1의 비민감 임시 저장소에서 feature linked worktree를 만든 뒤 다음 명령을 실행했다.
git worktree remove ../linked
결과는 exit 0이었다. 직후 아래 명령도 exit 0이었다.
git show-ref --verify --quiet refs/heads/feature
즉 worktree는 정상 제거됐지만 feature 브랜치는 남았다.
1. 제거한 경로가 목록에서 사라졌는지 확인한다
git worktree list에서 제거한 경로가 보이지 않는지 먼저 확인한다.
저장소 폴더의 터미널에서 실행한다.
git worktree list
제거하려던 경로가 더 이상 보이지 않으면 worktree 등록 제거를 확인한 것이다. 경로가 남거나 locked가 보이면 브랜치 삭제로 넘어가지 말고 해당 등록 상태부터 해결한다.
2. 브랜치에 남겨야 할 커밋이 있는지 확인한다
기준 브랜치와 비교해 작업 브랜치에만 있는 커밋이 나오면 삭제를 멈춘다.
브랜치 이름이 feature라면 다음처럼 확인한다.
git log --oneline main..feature
git branch --merged main
첫 명령에 커밋이 나오면 feature에만 있는 커밋일 수 있다. 내용을 검토하거나 병합하기 전에는 삭제하지 않는다. 두 번째 목록에 feature가 보이면 현재 로컬 기록상 main에 병합된 브랜치다. 기준 브랜치가 main이 아니라면 실제 기준 이름으로 바꾼다.
3. 필요 없고 병합된 브랜치만 별도로 삭제한다
병합과 보존 여부를 확인한 로컬 브랜치만 git branch -d로 삭제한다.
확인 후 삭제해도 되는 로컬 브랜치는 -d로 지운다.
git branch -d feature
직접 재현에서는 브랜치가 base와 같은 커밋을 가리키는 상태에서 다음 결과와 exit 0을 확인했다.
Deleted branch feature (was 6b16c1e).
-d가 미병합 경고로 거부하면 그 경고를 안전장치로 본다. 커밋을 확인하지 않은 채 -D로 바꾸지 않는다.
오류 문구별 다음 행동
오류 문구가 나오면 강제 옵션으로 넘기지 말고 아래 조건에 맞는 확인 단계로 이동한다.
| 결과 | 뜻 | 다음 행동 |
|---|---|---|
| remove exit 0, 브랜치 남음 | 정상적인 별도 수명 주기 | 커밋·병합 여부를 보고 보존 또는 branch -d |
modified or untracked files |
worktree 안에 미보존 변경이 있음 | 변경을 보존한 뒤 remove 재시도 |
Cannot delete branch ... checked out at ... |
다른 worktree가 브랜치를 사용 중 | git worktree list의 점유 경로 확인 |
branch is not fully merged |
기준 브랜치에 없는 커밋 가능성 | git log 기준..브랜치를 검토하고 삭제 중단 |
modified or untracked files가 나오면 수정 파일을 보존한 뒤 worktree를 제거하는 순서로 돌아간다. Cannot delete branch ... checked out at ...가 나오면 브랜치를 사용 중인 worktree 경로를 찾는 순서를 먼저 따른다.
핵심은 제거 성공과 브랜치 삭제를 한 동작으로 묶지 않는 것이다. worktree 목록에서 경로 제거를 확인하고, 브랜치에만 남은 커밋이 없는지 확인한 뒤, 필요 없을 때만 git branch -d를 실행한다.
자주 묻는 질문
git worktree remove가 성공하면 브랜치도 자동으로 지워지나?
아니다. worktree의 폴더와 등록 정보가 제거돼도 로컬 브랜치는 별도로 남을 수 있다.
남은 브랜치를 바로 git branch -D로 지워도 되나?
먼저 git log 기준브랜치..작업브랜치로 남은 커밋을 확인한다. 일반 삭제인 -d가 미병합 경고를 내면 강제 삭제로 바꾸지 말고 필요한 커밋을 보존한다.
검증 기준
- 주요 근거: Git 공식 worktree 문서, Git 공식 branch 문서
- 마지막 업데이트일: 2026-09-20
- 확인 환경: macOS 비민감 임시 저장소, Git 2.38.1
- 직접 결과: linked worktree remove exit 0 뒤
featureref 확인 exit 0, 별도git branch -d featureexit 0 - 한계: 미병합 브랜치 강제 삭제와 원격 브랜치 삭제는 재현·권장 범위가 아니다. 정확 월간 검색량과 실제 독자 반응은 미확인이다.
직접 만든 실습 자료와 새 도구 소식
AI 도구로 만든 실습 자료, 달라진 기능과 강의 소식을 준비하고 있습니다. 발송을 시작하면 안내해 드려요. 먼저 확인 메일에서 본인 이메일을 확인해 주세요.
신청하기 전에 첫 소식 미리보기에서 내용과 자료를 확인해 보세요.