[Git] ์คํ์(Stash)
๐ ๋ค์ด๊ฐ๋ฉฐ
์ด๋ฒ ๊ธ์์๋ ์์
์ค์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์์๋ก ์ ์ฅํ๋ git stash๋ฅผ ์ ๋ฆฌํ๋ค. ์ปค๋ฐํ๊ธฐ์ ์ ๋งคํ๋ฐ ๋ธ๋์น๋ฅผ ์ฎ๊ฒจ์ผ ํ ๋, ๋ณ๊ฒฝ๋ถ์ ์ ์ ์น์๋๊ณ ๋์ค์ ๋์ด๋ฆฌ๋ ๋ฐฉ๋ฒ์ด๋ค.
git stash๋? ํ์ฌ ์์ ์ค์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์คํ(stack)์ ์์ ์ ์ฅํ๋ ๋ช ๋ น. ์ฌ๋ฌ ๋ฒ ์์ ์ ์์ผ๋ฉฐ, ๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋ํ๊ฑฐ๋ ๊ธํ ์์ ์ ์ฒ๋ฆฌํ ๋ค ๋ค์ ๊บผ๋ด ์ธ ์ ์๋ค.
flowchart LR
W["์์
์ค ๋ณ๊ฒฝ"] -- "stash save" --> S[("Stash ์คํ")]
S -- "apply/pop" --> W2["์์
๋๋ ํฐ๋ฆฌ ๋ณต์"]
1. ํต์ฌ ๋ช ๋ น์ด
| ๋ช ๋ น | ์ญํ |
|---|---|
git stash save "๋ฉ์์ง" | ๋ณ๊ฒฝ ์ฌํญ ์ ์ฅ(+๋ฉ์์ง) |
git stash list | stash ๋ชฉ๋ก ํ์ธ |
git stash apply stash@{n} | ์ ์ฉ(stash ์ ์ง) |
git stash drop stash@{n} | stash ์ ๊ฑฐ |
git stash pop stash@{n} | ์ ์ฉ + ์ ๊ฑฐ(ํ ๋ฒ์) |
git stash apply --index | Staging Area๊น์ง ๋ณต์ |
1
2
3
git stash save "์์
์์ ์ ์ฅ"
git stash list
git stash pop stash@{0} # ์ ์ฉ + ์ ๊ฑฐ
๐ก
applyvspopโapply๋ stash๋ฅผ ๋จ๊ฒจ๋ ์ฑ ์ ์ฉํ๊ณ ,pop์ ์ ์ฉ ํ ์ญ์ ํ๋ค. ๊ฐ์ ๋ณ๊ฒฝ๋ถ์ ์ฌ๋ฌ ๋ธ๋์น์ ์ ์ฉํ ๊ฑฐ๋ฉดapply, ํ ๋ฒ ์ฐ๊ณ ๋ง ๊ฑฐ๋ฉดpop์ด ๊น๋ํ๋ค.
2. ์ค์ ํ์ฉ
๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋
1
2
3
git stash save "๋ธ๋์น ์ ํ์ฉ ์ ์ฅ"
git checkout feature-branch
git stash apply stash@{0}
๊ธํ ์์ ์ฒ๋ฆฌ
1
2
3
git stash save "Emergency fix" # ํ๋ ์ผ ์น์๋๊ณ
# ... ๊ธํ ์์ ...
git stash apply stash@{0} # ๋ค์ ์๋ ์์
๋ณต์
์ ๋ธ๋์น๋ก ์ด์ด์ ์์
1
2
3
git stash save "์์
์ด์ด๊ฐ๊ธฐ"
git checkout -b new-feature-branch
git stash apply stash@{0}
๐ก ์ปค๋ฐํ๊ธฐ์ ๋ฏธ์์ฑ์ด์ง๋ง ๋ธ๋์น๋ ๋ฐ๊ฟ์ผ ํ๋ ์ํฉ์ด stash์ ์ ํ์ ์ฉ๋๋ค. ์์ ๋ฌผ์ โ์ ๊น ์๋์ ๋ฃ์ด๋๋โ ๋๋์ผ๋ก, ๋ธ๋์น ๊ฐ ์ด๋์ ์์ ๋กญ๊ฒ ํด์ค๋ค.
3. ์ฃผ์์ฌํญ
โ ๏ธ ์ถฉ๋ ํด๊ฒฐ โ stash ์ ์ฉ ์ ํ์ฌ ์ฝ๋์ ์ถฉ๋ํ ์ ์๋ค. ์ถฉ๋์ ํด๊ฒฐํ๊ณ
git addํ, ๋จ์ stash๋git stash drop์ผ๋ก ์ ๋ฆฌํ๋ค.
๐ก ์ ์ฉํ ์ต์ โ
--keep-index(Staged ๋ณ๊ฒฝ ์ ์ง),--include-untracked(์ถ์ ์ ๋ ์ ํ์ผ๋ ์ ์ฅ),--patch(๋ณ๊ฒฝ ์ผ๋ถ๋ง ์ ํ ์ ์ฅ). ํ์์ ๋ฐ๋ผ stash๋ฅผ ๋ ์ธ๋ฐํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค. ์ ์ฅ ์ ๋ฉ์์ง๋ฅผ ๋ช ์ํ๋ฉด ๋์ค์ ์ด๋ค ์์ ์ธ์ง ์์๋ณด๊ธฐ ์ฝ๋ค.
๐ ์ ๋ฆฌ
1
2
3
4
5
git stash
โโ ์ ์ฅ git stash save "๋ฉ์์ง"
โโ ํ์ธ git stash list
โโ ๋ณต์ apply(์ ์ง) / pop(์ ๊ฑฐ)
โโ ์ต์
--index / --include-untracked / --patch
| ๊ฐ๋ | ํ ์ค ์ ์ |
|---|---|
| stash | ๋ณ๊ฒฝ ์ฌํญ ์์ ์ ์ฅ ์คํ |
| apply/pop | ์ ์ง ๋ณต์ / ์ ๊ฑฐ ๋ณต์ |
| โinclude-untracked | ์ ํ์ผ๊น์ง ์ ์ฅ |
git stash์ ํต์ฌ์ ์ปค๋ฐํ์ง ์๊ณ ์์ ๋ฌผ์ ์ ์ ์น์๋๋ ๊ฒ์ด๋ค. ๋ธ๋์น๋ฅผ ์์ฃผ ์ค๊ฐ๊ฑฐ๋ ๊ธํ ์์ ์ด ๋ผ์ด๋ค ๋, ํ๋ ์ผ์ ์์ ํ๊ฒ ๋ณด๊ดํ๋ค๊ฐ ๋์ด๋ฆด ์ ์์ด ๋งค์ฐ ์ค์ฉ์ ์ด๋ค.
Comments powered by Disqus.