์ค๋ต๊น ๐ช - ์ค๊ธํธ #10: Git Stash 200% ํ์ฉ๋ฒ - ์์ ์ ์ฅ ๋ง์คํฐํ๊ธฐ
by its_TIMIGit์ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์์ ์ค์ธ ์ฝ๋๊ฐ ์๋๋ฐ ๊ธํ๊ฒ ๋ธ๋์น๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ ์ ์๋ค.
์ด๋ด ๋ ๋จ์ํ git checkout(๋๋ git switch)์ ์ฌ์ฉํ๋ฉด ์์ ์ค์ด๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ฌ๋ผ์ง ์ํ์ด ์๋ค.
๋ํ, ์์ง ์ปค๋ฐํ๊ธฐ ์ ๋งคํ ๋ณ๊ฒฝ ์ฌํญ์ ์์๋ก ์ ์ฅํ๊ณ ์ถ์ ๋๋ ์๋ค.
์ด๋ด ๋ ๋ถํ์ํ ์ปค๋ฐ์ ๋ง๋ค์ง ์๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก git stash๋ค.
์ด๋ฒ ๊ธ์์๋ Git Stash๋ฅผ ํ์ฉํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณด์.
๐ Git Stash๋?
โ ์์ ์ค์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์์๋ก ์ ์ฅํ๊ณ ๋์ค์ ๋ค์ ๋ถ๋ฌ์ฌ ์ ์๋ ๊ธฐ๋ฅ
โ ๋ธ๋์น๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ค๋ฅธ ์์ ์ ๋จผ์ ์ํํ ๋ ์ ์ฉ
โ ์ปค๋ฐ์ ๋จ๊ธฐ์ง ์๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด๊ดํ ์ ์์
๐ Git Stash๊ฐ ํ์ํ ์ํฉ ์์
• ํ์ฌ ๋ธ๋์น์์ ์์ ์ค์ธ๋ฐ, ๊ธํ๊ฒ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋ํด์ผ ํ๋ ๊ฒฝ์ฐ
• ์์ง ์ปค๋ฐํ ๋จ๊ณ๊ฐ ์๋์ง๋ง ์์ ์ ์ ์ ์ ์ฅํด์ผ ํ๋ ๊ฒฝ์ฐ
• ์๋ก์ด ๊ธฐ๋ฅ์ ํ ์คํธํด์ผ ํ์ง๋ง, ํ์ฌ ์งํ ์ค์ธ ์์ ์ด ์๋ ๊ฒฝ์ฐ
๐ฅ Git Stash ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
1๏ธโฃ ๋ณ๊ฒฝ ์ฌํญ ์์ ์ ์ฅ (git stash)
git stash
โ ํ์ฌ ์์ ์ค์ธ ๋ณ๊ฒฝ ์ฌํญ์ด Stash์ ์ ์ฅ๋๋ฉฐ, ์ํน ๋๋ ํ ๋ฆฌ๋ ๊นจ๋ํ ์ํ๊ฐ ๋๋ค.
โ ์ดํ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋ํ๊ฑฐ๋, ๋ค๋ฅธ ์์ ์ ์งํํ ์ ์๋ค.
2๏ธโฃ ์ ์ฅํ Stash ๋ชฉ๋ก ํ์ธ (git stash list)
git stash list
โ Stash์ ์ ์ฅ๋ ๋ณ๊ฒฝ ์ฌํญ ๋ชฉ๋ก์ ํ์ธํ ์ ์๋ค.
โ stash@{0}, stash@{1} ๊ฐ์ ํ์์ผ๋ก ํ์๋๋ค.
3๏ธโฃ Stash์์ ๋ณ๊ฒฝ ์ฌํญ ๋ณต๊ตฌ (git stash pop)
git stash pop
โ ๊ฐ์ฅ ์ต๊ทผ์ ์ ์ฅํ Stash๋ฅผ ๋ถ๋ฌ์ค๊ณ , Stash ๋ชฉ๋ก์์ ์ ๊ฑฐํ๋ค.
โ pop์ ์คํํ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ด ๋ค์ ์ํน ๋๋ ํ ๋ฆฌ๋ก ์ ์ฉ๋๋ค.
4๏ธโฃ ํน์ Stash ์ ์ฉ (git stash apply)
git stash apply stash@{1}
โ ํน์ Stash๋ฅผ ์ ํํ์ฌ ์ ์ฉํ ์ ์๋ค.
โ pop๊ณผ ๋ค๋ฅด๊ฒ Stash ๋ชฉ๋ก์์ ์ ๊ฑฐ๋์ง ์๊ณ ์ ์ง๋๋ค.
5๏ธโฃ ํน์ Stash ์ญ์ (git stash drop)
git stash drop stash@{1}
โ ๋ถํ์ํ Stash๋ฅผ ์ญ์ ํ ์ ์๋ค.
6๏ธโฃ ๋ชจ๋ Stash ์ญ์ (git stash clear)
git stash clear
โ ๋ชจ๋ Stash๋ฅผ ํ ๋ฒ์ ์ญ์ ํ ์ ์๋ค.
โ ํ์ ์๋ Stash๊ฐ ๋ง์์ก์ ๋ ์ ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค.
๐ Git Stash ์ค์ ํ์ฉ๋ฒ
1๏ธโฃ ํน์ ํ์ผ๋ง Stash์ ์ ์ฅํ๊ธฐ
git stash push -m "์์ ์ ์ฅ ๋ฉ์์ง" -- <ํ์ผ๋ช
>
โ ๋ณ๊ฒฝ๋ ํ์ผ ์ค ํน์ ํ์ผ๋ง Stash์ ์ ์ฅํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
2๏ธโฃ Stash์์ ํน์ ํ์ผ๋ง ๊บผ๋ด์ค๊ธฐ
git checkout stash@{0} -- <ํ์ผ๋ช
>
โ Stash ์ ์ฒด๊ฐ ์๋๋ผ, ํน์ ํ์ผ๋ง ๊บผ๋ด์ค๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
3๏ธโฃ ๋ธ๋์น ๋ณ๊ฒฝ ํ Stash ์ ์ฉํ๊ธฐ
git stash
git switch ๋ค๋ฅธ-๋ธ๋์น
git stash pop
โ ํ์ฌ ์์ ์ Stash์ ์ ์ฅํ ํ, ๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋ํ์ฌ ๋ค์ ์ ์ฉํ๋ ๋ฐฉ์์ด๋ค.
๐ ์ธ์ Git Stash๋ฅผ ์ฌ์ฉํ๋ฉด ์ข์๊น?
โ ๊ธํ๊ฒ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋ํด์ผ ํ๋ ๊ฒฝ์ฐ
โ ์์ ์ ์์๋ก ์ ์ฅํ๊ณ , ๋ค์ ๊บผ๋ด๊ณ ์ถ์ ๋
โ ๋ถํ์ํ ์ปค๋ฐ์ ๋จ๊ธฐ๊ณ ์ถ์ง ์์ ๋
โ ์์ ์ค์ธ ์ฝ๋๋ฅผ ์ ์ฅํ ํ ํ ์คํธ๋ฅผ ์งํํ ๋
๐ ๋ง๋ฌด๋ฆฌํ๋ฉฐ…
Git Stash๋ ์ปค๋ฐ ์์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ ์ ์๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ด๋ค.
ํนํ ํ ํ๋ก์ ํธ์์ ๊ธํ๊ฒ ๋ธ๋์น๋ฅผ ๋ณ๊ฒฝํด์ผ ํ ๋ ์ ์ฉํ๊ฒ ํ์ฉํ ์ ์๋ค.
โ ๊ธฐ๋ณธ์ ์ผ๋ก git stash, git stash pop, git stash apply๋ฅผ ์ตํ๋๋ฉด ์ค๋ฌด์์ ํฐ ๋์์ด ๋๋ค.
โ ํน์ ํ์ผ๋ง Stashํ๊ฑฐ๋, Stash์์ ํน์ ํ์ผ๋ง ๊บผ๋ด๋ ๊ธฐ๋ฅ๋ ํ์ฉํด ๋ณด์.
โ ํ์ ์๋ Stash๋ git stash drop ๋๋ git stash clear๋ก ์ ๋ฆฌํ ์ ์๋ค.
์ด์ Git Stash๋ฅผ ์์ ์์ฌ๋ก ํ์ฉํ ์ ์์ ๊ฒ์ด๋ค.
๋ค์ ๊ธ์์๋ Git์ ๋ ํจ์จ์ ์ผ๋ก ํ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๋ณด์! ๐
'์ค๋ต ๊น๐ช > ์ค๊ธํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ธ๋ก๊ทธ์ ์ ๋ณด
Dev_TIMI
its_TIMI