git worktree add 브랜치 생성, 경로만 쓰면 왜 자동 생성될까?

git worktree add 브랜치 생성 규칙은 경로만 썼을 때 드러난다. git worktree add ../review처럼 경로만 쓰면, 같은 이름의 로컬 브랜치가 없으면 Git은 경로의 마지막 이름인 review를 새 브랜치 이름으로 사용한다. 현재 브랜치를 그대로 복제하는 명령이 아니다. 브랜치를 만들고 싶지 않은 임시 확인이라면 --detach를 명시해야 한다.

저장소에서 git worktree add 경로의 마지막 이름 review가 새 폴더와 브랜치 이름이 되고 detach는 브랜치 없는 경로로 갈라지는 흐름

경로만 쓰면 어떤 브랜치가 생길까?

같은 이름의 로컬 브랜치가 없을 때 대상 경로의 마지막 이름으로 새 브랜치가 자동 생성된다. 아래 명령에서 대상 경로는 ../review이고 마지막 이름은 review다.

git worktree add ../review

Git 2.38.1의 비민감 임시 저장소에서 실행하자 exit 0과 함께 다음 문구가 나왔다.

Preparing worktree (new branch 'review')
HEAD is now at 4a34411 base

새 worktree에서도 실제 브랜치를 확인했다.

git -C ../review branch --show-current

출력은 review였다. Git 공식 git-worktree 문서도 add <path> [<commit-ish>]에서 commit-ish를 생략하고 경로의 basename과 같은 브랜치가 없으면 그 이름의 새 브랜치를 만든다고 설명한다.

원하는 결과마다 어떤 명령을 써야 할까?

새 브랜치, 기존 브랜치, 브랜치 없는 임시 확인을 먼저 고른 뒤 명령에 이름이나 --detach를 명시한다. 경로만 주고 결과를 추측하지 않는다.

새 브랜치 이름을 직접 정할 때

경로와 브랜치 이름을 우연히 같게 두지 말고 둘 다 명시한다.

git worktree add -b fix/login ../review HEAD

../review는 폴더 경로, fix/login은 새 브랜치다. 실행 전 git branch --list fix/login으로 같은 로컬 브랜치가 이미 있는지 확인한다. 이미 있다면 -b를 반복하지 말고 기존 브랜치를 연결하는 순서를 따른다.

기존 브랜치를 열 때

git worktree add ../review 기존브랜치

원격에만 있는 브랜치라면 로컬 이름과 원격 ref를 구분해야 한다. 그 경우에는 원격 브랜치를 worktree에 연결하는 방법에서 확인한다.

브랜치 없이 특정 커밋만 임시 확인할 때

git worktree add --detach ../review HEAD

결과를 확인한다.

git -C ../review branch --show-current
git -C ../review status --short --branch

첫 명령이 아무 이름도 출력하지 않고 두 번째 명령에 HEAD (no branch)가 보이면 detached HEAD다. 이 상태에서 만든 커밋을 보존하려면 제거 전에 브랜치를 만들어 가리키게 한다.

git -C ../review switch -c 보존할브랜치

worktree를 제거하면 브랜치도 지워질까?

아니다. worktree 제거와 브랜치 삭제는 서로 다른 작업이다. 직접 재현에서 다음 명령으로 연결 worktree를 제거했다.

git worktree remove ../review

그 뒤 원래 저장소에서 확인하자 review 브랜치는 그대로 남았다.

git branch --list review
  review

worktree 제거는 작업 폴더와 연결 메타데이터를 정리하는 일이고, 브랜치 삭제는 별도 판단이다. 필요 없는 브랜치인지 커밋을 먼저 확인한다.

git log --oneline --decorate -5 review
git branch --merged

병합 여부와 필요한 커밋을 확인한 뒤에만 브랜치 삭제를 결정한다. 작업 파일이 남은 worktree를 강제로 제거하거나 확인 없이 git branch -D를 쓰는 절차는 권하지 않는다.

실행 전후에는 무엇을 확인해야 할까?

경로 basename, 기존 브랜치, 생성 결과, 제거 뒤 남은 브랜치를 차례로 확인한다. 아래 다섯 단계면 예상하지 않은 브랜치 생성과 삭제를 피할 수 있다.

  1. basename "../review"로 경로의 마지막 이름을 확인한다.
  2. git branch --list review로 같은 브랜치가 이미 있는지 본다.
  3. 새 브랜치면 -b 브랜치 경로 기준커밋, 기존 브랜치면 경로 기존브랜치, 임시 확인이면 --detach 경로 커밋을 명시한다.
  4. git -C 경로 branch --show-current와 git worktree list로 결과를 확인한다.
  5. worktree 제거 뒤에는 브랜치가 자동 삭제되지 않았다고 가정하고 별도로 확인한다.

자주 묻는 질문

현재 브랜치를 그대로 새 폴더에서 열고 싶으면 경로만 쓰면 되나?

아니다. 경로만 쓰면 그 경로의 마지막 이름으로 새 브랜치가 만들어질 수 있다. 열려는 기존 브랜치 이름을 git worktree add ../경로 기존브랜치처럼 두 번째 인자로 명시한다.

--detach로 연 worktree에서 만든 커밋은 사라지나?

커밋 객체가 즉시 사라지는 것은 아니지만 이름 있는 브랜치가 가리키지 않으면 나중에 찾기 어려워질 수 있다. 보존할 변경이면 worktree를 제거하기 전에 git switch -c 보존할브랜치로 브랜치를 만든다.

자동 생성된 브랜치는 바로 삭제해도 되나?

먼저 git log --oneline review와 git branch --merged로 필요한 커밋과 병합 여부를 확인한다. 확인하지 않은 git branch -D는 이 글의 안전 절차에 포함하지 않는다.

검증 기준

  • 주요 근거: Git 공식 git-worktree 문서
  • 공개 질문: worktree add가 브랜치를 만드는 이유와 삭제 여부
  • 마지막 업데이트일: 2026-09-20
  • 확인 환경: macOS 비민감 임시 저장소, Git 2.38.1
  • 직접 결과: git worktree add ../review는 exit 0으로 review 브랜치를 만들었고, worktree 제거 뒤에도 브랜치는 남았다.
  • 한계: 정확 월간 검색량과 seoin.dev 독자의 직접 피드백은 미확인이다. 최신 Git 모든 버전과 GUI 내부 호출은 이번 재현 범위가 아니다.

직접 만든 실습 자료와 새 도구 소식

AI 도구로 만든 실습 자료, 달라진 기능과 강의 소식을 준비하고 있습니다. 발송을 시작하면 안내해 드려요. 먼저 확인 메일에서 본인 이메일을 확인해 주세요.

신청하기 전에 첫 소식 미리보기에서 내용과 자료를 확인해 보세요.

질문이나 의견을 남겨주세요

이름을 입력하지 않아도 돼요. ‘깜짝 놀란 올빼미’ 같은 별명이 자동으로 붙어요.