Dev_TIMI

์Šค๋‚ต๊นƒ ๐Ÿช - ์ค‘๊ธ‰ํŽธ #10: Git Stash 200% ํ™œ์šฉ๋ฒ• - ์ž„์‹œ ์ €์žฅ ๋งˆ์Šคํ„ฐํ•˜๊ธฐ

by its_TIMI

Git์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ์ž‘์—… ์ค‘์ธ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ ๊ธ‰ํ•˜๊ฒŒ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿด ๋•Œ ๋‹จ์ˆœํžˆ 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

ํ™œ๋™ํ•˜๊ธฐ