HomeVideos

git worktree 설명

Now Playing

git worktree 설명

Transcript

95 segments

0:00

프로젝트 코딩 작업을 할 때요

0:01

다른 브랜치 작업이 필요한 경우,

0:04

가끔 있죠?

0:04

그런데 이런 경우엔

0:06

다른 브랜치 작업이 좀 난감합니다

0:09

아직 하던 작업이 완료가 덜 됐거나요

0:11

지금 파일 상태가 안 바뀐다는 가정하에

0:14

어떤 테스트 진행 중일 때,

0:16

이럴 때 어떻게 해야할지 막막합니다

0:19

특히 후자인 경우에는요

0:20

파일 상태를 그대로 둬야하면

0:22

git stash를 할 수도 없습니다

0:24

이럴 때 git worktree를 쓰면요

0:26

현재 브랜치 상태를 유지하면서

0:28

다른 브랜치 작업을 할 수 있습니다

0:31

그리고 git stash보다

0:32

훨씬 쉽고 직관적이라서요

0:35

이번 영상을 보고나면

0:36

git worktree를 써서

0:38

쉽게 여러 브랜치를 작업하실 수 있을 겁니다

0:42

git worktree는요

0:43

다른 브랜치를 새 폴더에서

0:45

작업하는 기능입니다

0:47

이 말만 들으면,

0:48

어떻죠?

0:48

어떻게 현재 브랜치를 유지하면서

0:50

다른 브랜치 작업을 할 수 있을지,

0:53

이해가 됩니다

0:53

git worktree를 쓰는 방법은요

0:55

git worktree add 경로 브랜치이름

0:58

입니다

0:59

이러면 경로 폴더를 새로 만들어서

1:02

그 경로에다가 브랜치이름의 브랜치를 만듭니다

1:05

예를 들어서 지금 프로젝트 폴더

1:07

prj/에 있는데요

1:09

여기서

1:09

git worktree add ../prj_piui piui

1:14

를 하면은요

1:15

piui 브랜치를

1:16

prj/ 상위 폴더의 어디?

1:18

prj_piui 에다가 만듭니다

1:21

그러면 prj_piui 폴더를 보면은요

1:25

prj/ 프로젝트의 piui 브랜치 상태입니다

1:28

이렇게 git worktree add로

1:30

다른 브랜치를 만들면요

1:32

여러모로 편합니다

1:33

아까 말한대로

1:34

지금 브랜치를 꼭 보존해야할 때 유용하구요

1:38

git stash보다도..

1:39

어떻죠?

1:39

저장해놓고 바꾸고

1:41

나중에 다시 checkout해서

1:42

git stash pop하고

1:44

이런 거 안해도 돼서

1:45

더 직관적이고요

1:46

두 브랜치를 동시에 보면서 비교하기도 편합니다

1:50

참고로 git worktree add로

1:52

브랜치를 다른 곳에 두면은요

1:54

원래 프로젝트 경로에서는 그 브랜치로

1:56

git checkout이 불가능합니다

1:58

이러면 두 폴더에서 같은 브랜치를 보게 되니까

2:01

충돌이 일어날 수밖에 없어서

2:03

당연하겠죠?

2:06

작업이 끝나고 만든 브랜치를 삭제할 때는요

2:08

원래 프로젝트 경로에서

2:10

git worktree remove 브랜치경로

2:13

를 하면 됩니다

2:14

아까의 예시라고 하면은요

2:15

prj/ 폴더 안에서

2:17

git worktree remove ../prj_piui

2:21

입니다

2:22

그런데 여기서

2:23

그냥 rm -rf ../prj_piui를 하면 어떨까요?

2:28

그러면 이 폴더는

2:29

파일 시스템상에서 사라지지만요

2:32

git 프로그램에서는

2:33

아직 piui 브랜치가 다른 폴더에 있다고 생각합니다

2:37

그래서 prj_piui가 없어졌지만

2:40

git은 모르니까요

2:41

piui 브랜치로 checkout이 불가능합니다

2:44

그래서 git worktree remove를 써야

2:47

깔끔하게 정리하지만요

2:48

혹시나 rm처럼

2:50

다른 프로그램으로 삭제한 경우에는

2:52

git worktree prune을 하면 됩니다

2:54

이러면 git은 있다고 생각했지만

2:56

실제로는 없는 worktree 브랜치 폴더를요

2:59

prune,

3:00

깨끗하게 정리합니다

3:02

이제 이런 난감한 상황,

3:04

다른 브랜치에서 긴급 작업이 필요하지만

3:06

하필이면 진행 중인 작업은 바꾸기가 곤란할 때요

3:10

git worktree를 활용하면

3:11

직관적이고 편하게

3:13

다른 브랜치에서 작업하실 수 있을 겁니다

Interactive Summary

본 영상은 프로젝트 작업 중 현재 상태를 유지하면서 다른 브랜치에서 긴급 작업을 수행해야 할 때 유용한 git worktree 기능에 대해 설명합니다. git stash의 번거로움을 해결하고 여러 브랜치를 동시에 작업하거나 비교할 수 있는 방법과 명령어 사용법, 그리고 작업 완료 후 깔끔하게 정리하는 방법까지 다루고 있습니다.

Suggested questions

3 ready-made prompts