VS Code의 Git 브랜치 및 워크트리
Git 브랜치를 사용하면 메인 코드베이스에 영향을 주지 않고 다양한 기능이나 실험을 동시에 작업할 수 있습니다. VS Code는 브랜치 관리, 병렬 개발을 위한 Git 워크트리, 임시 변경을 위한 스테시(stash) 관리 도구를 제공합니다.
이 문서에서는 VS Code에서 브랜치, 워크트리, 스테시를 사용하여 병렬 개발 작업을 관리하는 방법을 다룹니다.
브랜치 작업
브랜치는 Git 기록에서 특정 커밋을 가리키는 가볍고 이동 가능한 포인터입니다. 브랜치를 사용하면 메인 개발 라인에서 벗어나 독립적으로 기능을 작업할 수 있습니다.
예를 들어, 웹 애플리케이션을 작업 중인데 결제 시스템의 버그를 수정하는 동시에 사용자 인증을 추가해야 한다고 가정해 보겠습니다. 이때 두 개의 브랜치를 만들 수 있습니다.
feature/user-authentication- 로그인 및 회원가입 기능을 포함합니다.bugfix/payment-validation- 결제 처리 오류에 대한 수정을 포함합니다.
각 브랜치는 다른 브랜치에 영향을 주지 않고 자체 변경 사항 집합을 유지합니다. 브랜치 간에 전환하여 다른 작업을 수행하고, 완료된 브랜치를 나중에 메인 브랜치로 병합할 수 있습니다.
현재 브랜치 보기
현재 브랜치는 VS Code의 여러 곳에서 표시됩니다.
- 상태 표시줄: 현재 브랜치 이름을 표시하고 빠른 브랜치 전환을 지원합니다.
- 리포지토리 보기: 리포지토리 헤더에 현재 브랜치를 표시합니다.
- 소스 제어 그래프: 브랜치 관계와 기록을 시각적으로 표현합니다.

브랜치 간 전환
다른 브랜치로 전환하는 것을 Git 용어로는 브랜치를 "체크아웃(checkout)"한다고 합니다. 브랜치를 체크아웃하면 Git은 작업 디렉토리를 해당 브랜치의 상태에 맞게 업데이트합니다.
다른 브랜치로 전환하려면
-
상태 표시줄에서 브랜치 이름을 선택하거나, 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))에서 Git: Checkout to 명령을 실행하세요.
-
사용 가능한 브랜치 목록에서 선택
- 로컬 브랜치: 로컬 컴퓨터에 있는 브랜치
- 원격 브랜치: 원격 리포지토리의 브랜치로, 로컬에서 체크아웃할 수 있습니다.
- 최근 브랜치: 최근에 사용한 브랜치
브랜치를 전환할 때 커밋되지 않은 변경 사항이 있으면 Git은 작업 손실을 방지하기 위해 전환을 방지할 수 있습니다. 전환 전에 변경 사항을 커밋하거나 스테시(stash)를 사용하는 것을 고려하십시오.
새 브랜치 생성
새 브랜치를 만들어 기능 또는 실험 작업을 시작하세요.
-
상태 표시줄에서 브랜치 이름을 선택하거나 명령 팔레트에서 Git: Create Branch를 실행하세요.
-
새 브랜치에 대한 이름을 입력합니다.
feature/user-authentication또는bugfix/login-error와 같이 설명적인 이름을 사용하세요.팁VS Code는 무작위 브랜치 이름을 생성할 수 있습니다. git.branchRandomName.enable 및 git.branchRandomName.dictionary 설정을 사용하여 구성할 수 있습니다.
-
새 브랜치를 생성할 원본 브랜치(일반적으로
main또는develop)를 선택합니다.

VS Code는 생성 후 새 브랜치로 전환합니다.
GitHub Pull Requests and Issues 확장을 사용하는 경우 GitHub 이슈에서 직접 브랜치를 생성할 수 있습니다. 이를 통해 새 로컬 브랜치에서 작업을 시작하고 PR을 자동으로 미리 채울 수 있습니다.
브랜치 이름 변경 및 삭제
현재 브랜치의 이름을 변경하려면
- 명령 팔레트에서 Git: Rename Branch를 실행하거나, **추가 작업**( … ) 메뉴에서 선택하세요.
- 새 브랜치 이름을 입력합니다.
브랜치를 삭제하려면
- 다른 브랜치로 전환합니다(현재 활성 브랜치는 삭제할 수 없습니다).
- 명령 팔레트에서 Git: Delete Branch를 실행하거나 **추가 작업**( … ) 메뉴에서 선택하세요.
- 목록에서 삭제할 브랜치를 선택합니다.
**Delete Remote Branch** 작업을 사용하여 원격 브랜치를 삭제할 수도 있습니다.
브랜치를 삭제하면 로컬 리포지토리에서 영구적으로 제거됩니다. 브랜치가 병합되었거나 더 이상 변경 사항이 필요하지 않은지 확인하십시오.
브랜치 병합 및 게시
기능이 완료되면 메인 브랜치로 다시 병합합니다.
- 대상 브랜치(일반적으로
main또는develop)로 전환합니다. - 명령 팔레트에서 Git: Merge Branch를 실행합니다.
- 병합할 브랜치를 선택합니다.
브랜치를 원격 리포지토리에 게시하려면 **Publish Branch** 작업을 사용합니다.
VS Code는 소스 제어 보기에서 병합 결과를 표시합니다. 충돌이 발생하면 VS Code가 이를 강조 표시하고 해결 도구를 제공합니다. 병합 충돌 해결에 대해 자세히 알아보세요.
Git 워크트리 작업
VS Code는 Git 워크트리를 기본 지원하므로 여러 브랜치를 동시에 쉽게 관리하고 작업할 수 있습니다.
워크트리 이해
워크트리는 자체 디렉터리에 있는 Git 브랜치의 별도 체크아웃입니다. 이를 통해 동일한 리포지토리에 대해 다른 브랜치에 각각 다른 여러 작업 디렉터리를 가질 수 있습니다. 워크트리 기능은 특히 다음과 같은 경우에 유용합니다.
- 별도의 폴더에서 여러 기능을 동시에 작업
- 애플리케이션의 다른 버전을 나란히 실행
- 브랜치 간 구현 비교
워크트리 생성
VS Code에서 새 워크트리를 생성하려면
-
소스 제어 보기에서 **소스 제어 리포지토리** 보기를 엽니다.

-
리포지토리를 마우스 오른쪽 버튼으로 클릭하고 **Worktree** > **Create Worktree**를 선택합니다.

-
프롬프트에 따라 새 워크트리의 브랜치와 위치를 선택합니다.
VS Code는 지정된 위치에 워크트리에 대한 새 폴더를 생성하고 해당 폴더에 선택한 브랜치를 체크아웃합니다.
새 워크트리는 **소스 제어 리포지토리** 보기에서 별도의 항목으로 표시됩니다.
워크트리 간 전환
VS Code는 여러 리포지토리(워크트리 포함)를 동시에 표시할 수 있습니다.
- 각 워크트리는 **소스 제어 리포지토리** 보기에서 별도의 리포지토리로 표시됩니다.
- 여러 VS Code 창을 열고 각 창을 다른 워크트리를 가리키도록 설정할 수 있습니다.
- 파일 > **최근 항목 열기**를 사용하여 워크트리 디렉터리 간에 빠르게 전환하세요.
워크트리 열기
워크트리를 여는 데는 여러 가지 방법이 있습니다.
-
워크트리와 연결된 폴더를 VS Code에서 직접 엽니다. VS Code는 기존 리포지토리의 워크트리임을 자동으로 감지합니다.
-
소스 제어 리포지토리 보기에서 워크트리를 마우스 오른쪽 버튼으로 클릭하고 **Open Worktree in New Window** 또는 **Open Worktree in Current Window**를 선택합니다.
-
명령 팔레트에서 **Git: Open Worktree in Current Window** 또는 **Git: Open Worktree in New Window** 명령을 실행하고 원하는 워크트리를 선택합니다.
워크트리 변경 사항 비교 및 마이그레이션
워크트리에서 변경 사항을 만들면 해당 변경 사항을 메인 작업 공간과 비교하고 워크트리 변경 사항을 메인 리포지토리로 다시 가져올 수 있습니다.
-
소스 제어 보기에서 워크트리에 있는 변경된 파일을 마우스 오른쪽 버튼으로 클릭하고 **Compare with Workspace**를 선택하여 변경 사항을 나란히 비교합니다.

-
검토 후 명령 팔레트에서 **Migrate Worktree Changes** 명령을 사용하여 워크트리의 모든 변경 사항을 현재 작업 공간으로 병합합니다.
다음 단계
- 스테이징 및 커밋 - 브랜치 내에서 변경 사항 커밋에 대해 알아봅니다.
- 병합 충돌 - 브랜치를 병합할 때 충돌을 처리합니다.
- 리포지토리 및 원격 - 원격 브랜치 및 협업 작업
- GitHub에서 협업 - 브랜치 워크플로에서 GitHub 풀 요청 사용