[Git] worktree
worktree๋ git์ ์ ์ฉํ ๋ถ๊ฐ๊ธฐ๋ฅ ์ค ํ๋๋ค.
์ฌ๋ฌ๊ฐ์ ์์
์ํ๋ฅผ ๋์์ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋ค.
๋ง๋ฒ์ฒ๋ผ ์ฎ์ด์ ์ฒ๋ฆฌํด์ฃผ๋ ๊ทธ๋ฐ๊ฑด ์๋๊ณ , ๊ธฐ์ค ๋์ ์๋ฆฌ ์์ฒด๋ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ๊ฐ cloneํด์ฃผ๋ ๊ฒ์ด ๋ค๋ค.
๋งค๋ฒ cloneํ๊ฑฐ๋ ๋ณต๋ถํด์ ๊ด๋ฆฌํ๋ ๊ฒ๋ณด๋ค๋ ํธํ๋ค.
git worktree์ ์๋ธ์ปค๋งจ๋๋ค์ ํตํด์ ์ฌ์ฉํ ์ ์๋ค.

worktree ์ถ๊ฐ
worktree add ๋ช
๋ น์ ์ฌ์ฉํ๋ฉด tree๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
tree๊ฐ ์์ฑ๋ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ผ ํ๋ค. ๋ณดํต์ ๋ถ๋ชจ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ (../tree๋ช
)์ ํํ๋ก ๋ณด๋ธ๋ค.
git worktree add ../treename # ๋ธ๋์น๋ฅผ ๋ง๋ค๋ฉด์ ์์ฑ
git worktree add ../treename ๋ธ๋์น # ํน์ ๋ธ๋์น๋ก ์์ฑ

๊ทธ๋ฆฌ๊ณ tree๊ฐ ๋ง๋ค์ด์ง๋ฉด

์ค์ ๋ก ๋ถ๋ชจ ๋๋ ํฐ๋ฆฌ์, tree์ ์ด๋ฆ์ผ๋ก ํ๋ก์ ํธ์ clone์ด ์์ฑ๋๋ค. ๊ฑฐ์ ๋์ผํ ๋ณต์ ๋ค.
worktree ๋ค๋ฃจ๊ธฐ
๊ทธ๋ฆฌ๊ณ worktree list ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด, ์ ์ฒด tree ๋ชฉ๋ก์ ์กฐํํ ์ ์๋ค.


worktree๋ branch์ฒ๋ผ ์ฝ๋ ๋ฒ์ ์ ์๋์ ์ ํํด์ฃผ๊ณ ๊ทธ๋ฐ๊ฑด ์๋ค.
์๋ก ๋ง๋ tree์ ๋ํด์ ์์
์ ํ๋ ค๋ฉด, ๋ฐฉ๊ธ ๋ง๋ tree ๋๋ ํ ๋ฆฌ์ ๋ค์ด๊ฐ์ ํด์ผ ํ๋ค.
์ปค๋ฐ์ด๋ ๋ธ๋์น๋ ์์ ํ ๋ณ๋๋ก ๊ด๋ฆฌ๋๋ค.

tree๋ผ๋ ๊ธ๋ก๋ฒ ์ปจํ
์คํธ๋ฅผ ํตํด ์ต์ํ์ ์ ๋ณด๋ง ๊ณต์ ํ ๋ฟ์ด๋ค.
Worktree ์ ๊ฑฐ
์์
์ ์๋ฃํ๋ค๋ฉด tree๋ฅผ ์ ๋ฆฌํ๊ธฐ๋ ํด์ผํ๋ค.
remove ๋ช
๋ น์ ์ฌ์ฉํ๋ฉด worktree๋ฅผ ์ค์ ๋๋ ํ ๋ฆฌ์ ํจ๊ป ์ง์์ค๋ค.
worktree์ ์ํ๊ฐ ๊นจ๋ํ์ง ์๋ค๋ฉด ์ง์์ง์ง ์๊ธฐ๋ ํ๋ค. ๊ทธ๋ด๋๋ --force ์ต์
์ ์ฃผ๊ฑฐ๋ ์ง์ ์ง์์ค๋ ๋๋ค.