git worktree 설명
95 segments
프로젝트 코딩 작업을 할 때요
다른 브랜치 작업이 필요한 경우,
가끔 있죠?
그런데 이런 경우엔
다른 브랜치 작업이 좀 난감합니다
아직 하던 작업이 완료가 덜 됐거나요
지금 파일 상태가 안 바뀐다는 가정하에
어떤 테스트 진행 중일 때,
이럴 때 어떻게 해야할지 막막합니다
특히 후자인 경우에는요
파일 상태를 그대로 둬야하면
git stash를 할 수도 없습니다
이럴 때 git worktree를 쓰면요
현재 브랜치 상태를 유지하면서
다른 브랜치 작업을 할 수 있습니다
그리고 git stash보다
훨씬 쉽고 직관적이라서요
이번 영상을 보고나면
git worktree를 써서
쉽게 여러 브랜치를 작업하실 수 있을 겁니다
git worktree는요
다른 브랜치를 새 폴더에서
작업하는 기능입니다
이 말만 들으면,
어떻죠?
어떻게 현재 브랜치를 유지하면서
다른 브랜치 작업을 할 수 있을지,
이해가 됩니다
git worktree를 쓰는 방법은요
git worktree add 경로 브랜치이름
입니다
이러면 경로 폴더를 새로 만들어서
그 경로에다가 브랜치이름의 브랜치를 만듭니다
예를 들어서 지금 프로젝트 폴더
prj/에 있는데요
여기서
git worktree add ../prj_piui piui
를 하면은요
piui 브랜치를
prj/ 상위 폴더의 어디?
prj_piui 에다가 만듭니다
그러면 prj_piui 폴더를 보면은요
prj/ 프로젝트의 piui 브랜치 상태입니다
이렇게 git worktree add로
다른 브랜치를 만들면요
여러모로 편합니다
아까 말한대로
지금 브랜치를 꼭 보존해야할 때 유용하구요
git stash보다도..
어떻죠?
저장해놓고 바꾸고
나중에 다시 checkout해서
git stash pop하고
이런 거 안해도 돼서
더 직관적이고요
두 브랜치를 동시에 보면서 비교하기도 편합니다
참고로 git worktree add로
브랜치를 다른 곳에 두면은요
원래 프로젝트 경로에서는 그 브랜치로
git checkout이 불가능합니다
이러면 두 폴더에서 같은 브랜치를 보게 되니까
충돌이 일어날 수밖에 없어서
당연하겠죠?
작업이 끝나고 만든 브랜치를 삭제할 때는요
원래 프로젝트 경로에서
git worktree remove 브랜치경로
를 하면 됩니다
아까의 예시라고 하면은요
prj/ 폴더 안에서
git worktree remove ../prj_piui
입니다
그런데 여기서
그냥 rm -rf ../prj_piui를 하면 어떨까요?
그러면 이 폴더는
파일 시스템상에서 사라지지만요
git 프로그램에서는
아직 piui 브랜치가 다른 폴더에 있다고 생각합니다
그래서 prj_piui가 없어졌지만
git은 모르니까요
piui 브랜치로 checkout이 불가능합니다
그래서 git worktree remove를 써야
깔끔하게 정리하지만요
혹시나 rm처럼
다른 프로그램으로 삭제한 경우에는
git worktree prune을 하면 됩니다
이러면 git은 있다고 생각했지만
실제로는 없는 worktree 브랜치 폴더를요
prune,
깨끗하게 정리합니다
이제 이런 난감한 상황,
다른 브랜치에서 긴급 작업이 필요하지만
하필이면 진행 중인 작업은 바꾸기가 곤란할 때요
git worktree를 활용하면
직관적이고 편하게
다른 브랜치에서 작업하실 수 있을 겁니다
Ask follow-up questions or revisit key timestamps.
본 영상은 프로젝트 작업 중 현재 상태를 유지하면서 다른 브랜치에서 긴급 작업을 수행해야 할 때 유용한 git worktree 기능에 대해 설명합니다. git stash의 번거로움을 해결하고 여러 브랜치를 동시에 작업하거나 비교할 수 있는 방법과 명령어 사용법, 그리고 작업 완료 후 깔끔하게 정리하는 방법까지 다루고 있습니다.
Videos recently processed by our community