๐Ÿ— Git Stash ์ •๋ฆฌ

oversleepยท2025๋…„ 3์›” 5์ผ

git

๋ชฉ๋ก ๋ณด๊ธฐ
10/11

๐Ÿ“Œ Git Stash๋ž€?

Git Stash๋Š” ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž„์‹œ๋กœ ์ €์žฅ(stash)ํ•ด๋‘๊ณ , ๊นจ๋—ํ•œ ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณด๋ฅ˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.


๐Ÿ”ฅ ๊ธฐ๋ณธ ๋ช…๋ น์–ด

๐Ÿ”น Stash ์ €์žฅํ•˜๊ธฐ

1๏ธโƒฃ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ stash์— ์ €์žฅ

 git stash

๐Ÿ‘‰ Tracked ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ์ €์žฅํ•˜๊ณ , Untracked ํŒŒ์ผ์€ ์ €์žฅ๋˜์ง€ ์•Š์Œ.

2๏ธโƒฃ ๋ฉ”์‹œ์ง€๋ฅผ ๋ถ™์—ฌ ์ €์žฅ

git stash push -m "์ž‘์—… ๋‚ด์šฉ ์„ค๋ช…"

๐Ÿ‘‰ ์—ฌ๋Ÿฌ ๊ฐœ์˜ stash๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ.

3๏ธโƒฃ Untracked ํŒŒ์ผ๊นŒ์ง€ stash์— ํฌํ•จ

git stash -u  # (Untracked files ํฌํ•จ)
git stash -a  # (Untracked + Ignored files ํฌํ•จ)

๐Ÿ“œ Stash ๋ชฉ๋ก ํ™•์ธ

git stash list

๐Ÿ‘‰ ์ €์žฅ๋œ stash ๋ชฉ๋ก์ด ๋ณด์ธ๋‹ค.

stash@{0}: WIP on main: 1234567 Update readme
stash@{1}: WIP on dev: abcdef0 Fix bug
stash@{2}: WIP on feature: 789abcd New UI

๐Ÿ”„ Stash ์ ์šฉ ๋ฐ ๋ณต์›

๐Ÿ”น ๊ฐ€์žฅ ์ตœ๊ทผ stash ์ ์šฉ (stash ๋‚ด์šฉ์€ ์œ ์ง€๋จ)

git stash apply

๐Ÿ‘‰ ์ตœ๊ทผ stash๋ฅผ ์ ์šฉํ•˜์ง€๋งŒ stash ์ž์ฒด๋Š” ์‚ญ์ œ๋˜์ง€ ์•Š์Œ

๐Ÿ”น ํŠน์ • stash ์ ์šฉ (stash ๋‚ด์šฉ์€ ์œ ์ง€๋จ)

git stash apply stash@{2}

๐Ÿ‘‰ stash@{2}์˜ ๋‚ด์šฉ์„ ์ ์šฉํ•จ

๐Ÿ”น ๊ฐ€์žฅ ์ตœ๊ทผ stash ์ ์šฉ ํ›„ ์‚ญ์ œ

git stash pop

๐Ÿ‘‰ ๊ฐ€์žฅ ์ตœ๊ทผ stash ์ ์šฉ ํ›„ ์ž๋™ ์‚ญ์ œ๋จ

๐Ÿ”น ํŠน์ • stash ์ ์šฉ ํ›„ ์‚ญ์ œ

git stash pop stash@{1}

๐Ÿ‘‰ stash@{1}์„ ์ ์šฉํ•˜๊ณ  ์‚ญ์ œํ•จ


โŒ Stash ์‚ญ์ œ

๐Ÿ”น ํŠน์ • stash ์‚ญ์ œ

git stash drop stash@{1}

๐Ÿ‘‰ stash@{1}๋งŒ ์‚ญ์ œ๋จ

๐Ÿ”น ๊ฐ€์žฅ ์ตœ๊ทผ stash ์‚ญ์ œ

git stash drop

๐Ÿ‘‰ stash@{0}์„ ์‚ญ์ œํ•˜๊ณ , ๋‚˜๋จธ์ง€ stash๋“ค์ด ํ•œ ์นธ์”ฉ ์•ž์œผ๋กœ ์ด๋™ํ•จ

๐Ÿ”น ๋ชจ๋“  stash ์‚ญ์ œ

git stash clear

๐Ÿ‘‰ ๋ชจ๋“  stash๋ฅผ ์‚ญ์ œ (๋ณต๊ตฌ ๋ถˆ๊ฐ€)


๐Ÿ”ฅ ๊ธฐํƒ€ ์œ ์šฉํ•œ Stash ๋ช…๋ น์–ด

๐Ÿ”น Stash ๋‚ด์šฉ์„ ํ™•์ธ

git stash show -p stash@{0}

๐Ÿ‘‰ stash@{0}์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ƒ์„ธํžˆ ํ™•์ธ

๐Ÿ”น Stash์—์„œ ํŠน์ • ํŒŒ์ผ๋งŒ ๋ณต์›

git checkout stash@{0} -- ํŒŒ์ผ๋ช…

๐Ÿ‘‰ stash์—์„œ ํŠน์ • ํŒŒ์ผ๋งŒ ์ฒดํฌ์•„์›ƒํ•˜์—ฌ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ”น ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋กœ Stash ์ ์šฉ

git stash branch ์ƒˆ๋กœ์šด_๋ธŒ๋žœ์น˜๋ช… stash@{0}

๐Ÿ‘‰ stash ๋‚ด์šฉ์„ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜์—์„œ ๋ณต์›ํ•˜๊ณ  ๊ธฐ์กด stash๋Š” ์‚ญ์ œ๋จ


๐ŸŽฏ ์ •๋ฆฌ

๊ธฐ๋Šฅ๋ช…๋ น์–ด
Stash ์ €์žฅgit stash
๋ฉ”์‹œ์ง€๋ฅผ ๋ถ™์—ฌ ์ €์žฅgit stash push -m "๋ฉ”์‹œ์ง€"
Untracked ํŒŒ์ผ๊นŒ์ง€ ์ €์žฅgit stash -u / git stash -a
Stash ๋ชฉ๋ก ํ™•์ธgit stash list
๊ฐ€์žฅ ์ตœ๊ทผ stash ์ ์šฉgit stash apply
ํŠน์ • stash ์ ์šฉgit stash apply stash@{n}
๊ฐ€์žฅ ์ตœ๊ทผ stash ์ ์šฉ ํ›„ ์‚ญ์ œgit stash pop
ํŠน์ • stash ์ ์šฉ ํ›„ ์‚ญ์ œgit stash pop stash@{n}
ํŠน์ • stash ์‚ญ์ œgit stash drop stash@{n}
๋ชจ๋“  stash ์‚ญ์ œgit stash clear
Stash ๋‚ด์šฉ ํ™•์ธgit stash show -p stash@{n}
ํŠน์ • ํŒŒ์ผ๋งŒ ๋ณต์›git checkout stash@{n} -- ํŒŒ์ผ๋ช…
์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜์—์„œ Stash ์ ์šฉgit stash branch ์ƒˆ๋กœ์šด_๋ธŒ๋žœ์น˜ stash@{n}
profile
๊ถ๊ธˆํ•œ ๊ฒƒ, ํ–ˆ๋˜ ๊ฒƒ, ์‹œํ–‰์ฐฉ์˜ค ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ๋“ค์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

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