Recent Posts
Recent Comments
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
관리 메뉴

ㅇ.ㅇ

[Git] Worktree 본문

Today I Learned

[Git] Worktree

dbs_ 2025. 7. 13. 22:11
반응형

 

 

현재 작업하고 있는 내용이 있는데, 다른 브랜치를 수정해야할 때면 매번 stash를 하곤 했다. 그렇지만 그걸 반복하다보면 헷갈리기도 하고, 중간에 내용이 누락될 수도 있어 불안전하다고 느껴졌다. 그러다가 이번에 git worktree라는 기능을 알게되어 정리해보았다.

 

1. git worktree란

  • git worktree는 하나의 Git 저장소에서 여러 작업 디렉토리를 사용할 수 있게 해주는 기능
  • 기존에는 다른 브랜치로 작업하고 싶을 때마다 git checkout으로 이동해야 했지만, worktree를 이용하면 여러 브랜치를 서로 다른 폴더에 동시에 checkout해 둘 수 있다.
  • 즉, clone처럼 보이지만 원격 저장소 없이, 하나의 Git 히스토리를 공유하며 여러 작업 폴더를 운영할 수 있다.

 

2. 기본 worktree 명령어

worktree 목록 확인

현재 연결된 worktree들의 경로와 브랜치 상태를 확인할 수 있다.

git worktree list

 

새로운 브랜치를 worktree로 추가

해당 브랜치를 새로운 디렉토리에 체크아웃한다. 브랜치가 없다면 새로 생성하면서 연결된다.

git worktree add <디렉토리명> <브랜치명>

# 예시
git worktree add ../bugfixTest bugfix/test
 

worktree로 이동

단순히 해당 디렉토리로 cd하면 된다.

../bugfixTest

 

worktree 제거

단순히 연결만 끊는 것이고, 실제 디렉토리나 브랜치가 삭제되지는 않는다.

git worktree remove <디렉토리명>

 

주의

  • 브랜치가 이미 체크아웃되어 있으면 에러가 발생하니 주의.

 

예전에는 여러 브랜치 작업하려면 clone을 여러 번 하거나 stash, checkout을 반복해야 했는데, git worktree를 쓰면 하나의 저장소로 브랜치별 폴더를 따로 유지할 수 있어서 개발 생산성이 크게 향상되는 것 같다. 특히 패치 작업, 릴리즈 브랜치 테스트, 또는 여러 버전을 동시에 관리할 때 정말정말 유용할 것 같다.

반응형