๐ŸŽ Git Stash๋กœ ์ฝ”๋“œ ์ž ๊น ๋ณด๊ด€ํ•˜๊ธฐ

์œ ์ง„ยท2025๋…„ 5์›” 27์ผ

git

๋ชฉ๋ก ๋ณด๊ธฐ
12/13

์ด์ œ ๋งˆ์ง€๋ง‰ ๊ฐ•์˜๋‹ค. 22๋…„๋„ ๊ฐ•์˜๋ผ ์ตœ์‹  ์ •๋ณด๋“ค์ด ๋ถ€์กฑํ•˜๊ธด ํ•œ๋ฐ ๊ฐœ๋…์„ ์•Œ๊ธฐ์—” ๋ญ ๋‚˜์˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค.


์•„๋ฌดํŠผ ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ  ์—ฌ๊ธฐ์— ์“ฐ๋ ˆ๊ธฐ๊ฐ™์ด ๋งŒ๋“ค์–ด๋‘” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์น˜์ž.

๊ทธ ์ฝ”๋“œ๋ฅผ ๋นผ๋†“๊ณ ์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ, ์ฃผ์„ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด๋„ ๋˜๊ฒ ์ง€๋งŒ

git stash ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด๋„ ์ž ๊น ์ฝ”๋“œ๋ฅผ ์น˜์›Œ๋‘˜ ์ˆ˜ ์žˆ๋‹ค.

git stash๊ฐ€ ๋ญ”๋ฐ

์šฐ์„  main.js๋ผ๋Š” ํด๋”์— asdfasdf ๋ผ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์Šคํ…Œ์ด์ง• ๋ฐ ์ปค๋ฐ‹์„ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ ์•„๋ž˜์— qwerqwer๋ผ๋Š” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๊ฒŒ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์•„์„œ ์ž ๊น ์‚ญ์ œํ•˜๊ณ  ์‹ถ์„ ๋•Œ
git stash๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๊น”๋”ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

1. git stash

git stash๋ฅผ ์ž…๋ ฅํ•˜๋ฉด

์ด๋ ‡๊ฒŒ ์ž„์‹œ ๊ณต๊ฐ„์œผ๋กœ ์ด๋™์„ ํ•œ๋‹ค.

๋ณด๊ด€๋œ ์ฝ”๋“œ๋ฅผ ๋ณด๋ ค๋ฉด git stash list๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

์•„๋ฌดํŠผ ์ด stash๋ผ๋Š” ๊ฒƒ์€ ์ตœ๊ทผ commit ์ดํ›„์— ํ–ˆ๋˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์„ ์ €์žฅํ•ด์ฃผ๋Š” ๊ฑฐ๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

์ฃผ์˜ํ•  ์ ์€ ์Šคํ…Œ์ด์ง•์„ ์•ˆ ํ•ด๋†“์€ ์ƒˆ๋กœ์šด ํŒŒ์ผ์€ ์ €์žฅ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ 

2. Stash์— ๋ฉ”๋ชจ ์ถ”๊ฐ€ํ•˜๊ธฐ

์ด์ œ ํŒŒ์ผ์„ ๋‹ค์‹œ ์ˆ˜์ •ํ•˜๊ณ  ์ด๋ฅผ ๋‹ค์‹œ stash์— ์ €์žฅํ•ด๋†“๊ณ  ์‹ถ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๋ฒˆ์—๋Š” ๋ฉ”๋ชจ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ์น˜์ž.

๊ทธ๋Ÿด ๋• save ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

git stash save "bbb ์ฝ”๋“œ์งฐ๋Š”๋ฐ ๋งํ•จ"

์ด๋Š” ๋‚˜์ค‘์— ์–ด๋–ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ธ์ง€ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค„ ์ˆ˜ ์žˆ๋‹ค.

3. Stash์—์„œ ์ฝ”๋“œ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

๊ทผ๋ฐ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ „์— ๋งŒ๋“ค์—ˆ๋˜ ์ฝ”๋“œ๊ฐ€ ๋” ์ข‹์€ ๊ฒƒ ๊ฐ™์•„์„œ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ค๋ ค๋ฉด
pop์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

git stash pop

๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋ณด๊ด€ํ•œ Stash๋ฅผ ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

๋ถˆ๋Ÿฌ์˜จ stash๋Š” ๋ฌผ๋ก  ์‚ญ์ œ๋œ๋‹ค.

ํ•ญ์ƒ ์ตœ๊ทผ ๊ฒƒ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๊ทผ๋ฐ ์ฃผ์„ ์จ๋„ ๋˜๋Š” ๊ฑฐ ์•„๋‹Œ๊ฐ€?

์ฃผ์„์ด ์žˆ๊ธฐ์— ์ด๊ฒŒ ํ•„์š”ํ•œ๊ฐ€ ์‹ถ์„ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ฃผ์„๋„ commit์— ๋ฐ˜์˜๋˜๊ธฐ ๋•Œ๋ฌธ์— commit ์‹œ์— ์“ธ๋ฐ์—†๋Š” ๊ฑธ ์ˆจ๊ธฐ๊ณ  ์‹ถ๋‹ค๋ฉด stash๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

5. Stash ์‚ญ์ œํ•˜๊ธฐ

์ด๋ ‡๊ฒŒ ์ด๊ฒƒ์ €๊ฒƒ ์ž‘์—…ํ•˜๋‹ค ๋ณด๋ฉด ํŠน์ • stash๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿด ๋•Œ drop์„ ์ด์šฉํ•ด์„œ list๋ฅผ ํ†ตํ•ด ํ™•์ธํ•œ ํŠน์ • stash๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

git stash drop <Stash ID>

์ „๋ถ€ ์‚ญ์ œํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด git stash clear๋ฅผ ์ž…๋ ฅํ•˜์ž.

๋งˆ๋ฌด๋ฆฌ

๊ธฐ๋Šฅ A์™€ B๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๋ฐ A๋Š” ์™„์„ฑํ•˜๊ณ  B๋ฅผ ๋ฐ˜์ฏค ์™„์„ฑํ–ˆ์„ ๋•Œ,
ํŒ€์žฅ๋‹˜์ด A๋งŒ ๋นจ๋ฆฌ commitํ•˜๊ณ  mergeํ•˜๋ผ๋ฉฐ ๋…์ด‰ํ–ˆ์„ ๊ฒฝ์šฐ์— ์ด๋Ÿฐ git stash ๊ฐ™์€ ๊ฑธ๋กœ ์ €์žฅํ•ด๋†”๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋ธŒ๋žœ์น˜ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ ๊ฑฐ๊ธฐ๋‹ค ์ฝ”๋“œ ์งœ๋Š” ๊ฑฐ๋ž‘ ๋‹ค๋ฅผ ๋ฐ”๊ฐ€ ์—†๋Š”๋ฐ์š”

๊ทธ๋ ‡๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ƒฅ stash๋ฅผ ์“ฐ๊ธฐ ์‹ซ๊ฑฐ๋‚˜ ๋ชจ๋ฅธ๋‹ค๋ฉด, ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ณด๊ด€ํ•˜์ž.

๊ทธ๋ ‡์ง€๋งŒ ๊ทน๋‹จ์ ์œผ๋กœ ์ปค๋ฐ‹ ๊ธฐ๋ก์„ ๊น”๋”ํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ถ๊ฑฐ๋‚˜ ๋‚ด๊ฐ€ ์ž„์‹œ๋กœ ์“ฐ๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ ์‚์ฃฝ ํŠ€์–ด๋‚˜์˜จ ๊ฒŒ ๋งˆ์Œ์— ์•ˆ ๋“ ๋‹ค๋ฉด, git stash๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ์ด๋‹ค.

๋ญ ์ด๋Ÿฐ ๊ฒƒ๋“ค์€ ์•Œ์•„๋‘๋ฉด ์ƒํ™ฉ์— ๋งž๊ฒŒ ํ™œ์šฉํ•  ์„ ํƒ์ง€๊ฐ€ ๋А๋Š” ๊ฑฐ๋‹ˆ๊นŒ ์•Œ์•„์„œ ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ์„ ํ•˜๋„๋ก ํ•ด๋ณด์ž.

0๊ฐœ์˜ ๋Œ“๊ธ€