[Git] stash

[์›๋ณธ ๋งํฌ]

์—ฌ๋Ÿฟ์ด์„œ Git์„ ์‚ฌ์šฉํ•ด ํ˜‘์—…์„ ํ•˜๋‹ค๋ณด๋ฉด, ์ž์‹ ์ด ์ง„ํ–‰ํ•˜๋˜ ์ž‘์—…์„ ํ‚ตํ•ด๋†“๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์„ ํ•ด์•ผํ•  ๊ฒฝ์šฐ๊ฐ€ ๋นˆ๋ฒˆํ•˜๋‹ค.

stash๋Š” ๊ทธ๋Ÿด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” "์ž„์‹œ ์ €์žฅ"์šฉ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ƒฅ ์ „๋ถ€ ๋‹ค commit์œผ๋กœ ์ €์žฅํ•ด๋„ ๋˜์ง€๋งŒ, ๊ทธ๋Ÿฌ๋ฉด ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์ง€์ €๋ถ„ํ•ด์ ธ์„œ rebase๋ฅผ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

stash๋Š” commit๊ณผ๋Š” ์ข€ ๋‹ค๋ฅธ ๊ธฐ์ „์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.




stash์— ๋„ฃ๊ณ  ๋นผ๊ธฐ

stash๋Š” ์Šคํƒ๊ตฌ์กฐ๋กœ ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ์†Œ์Šค ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ „๋ถ€ ์ €์žฅํ•œ๋‹ค.
๋„ฃ๋Š”๊ฑด git stash, ๋‹ค์‹œ ๋นผ๋Š”๊ฑด git stash pop ๋ช…๋ น์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ ์ด๋ ‡๊ฒŒ ์ปค๋ฐ‹์ด ๋˜์–ด์žˆ๋Š” ์ƒํƒœ์—์„œ

์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ์ž‘์„ฑํ•˜๊ณ 

git stash๋ฅผ ํ•œ๋‹ค๋ฉด,

์ถ”๊ฐ€๋กœ ์ž‘์„ฑํ•œ ํ•ญ๋ชฉ์ด ์ž„์‹œ์ €์žฅ๋˜๊ณ , ์ด์ „์˜ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐˆ ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์ €์žฅ๋œ ํ•ญ๋ชฉ์„ ๋ถˆ๋Ÿฌ์˜ค๋ ค๋ฉด stash pop์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿผ ๋‹ค์‹œ ์ž˜ ๋Œ์•„์˜ฌ ๊ฒƒ์ด๋‹ค.

๋งŒ์•ฝ ์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ(github ๋“ฑ)๋ฅผ ํ†ตํ•ด์„œ ์™ธ๋ถ€ ์ปค๋ฐ‹์„ ๋ฐ›์•„ ์ž‘์—…ํ•˜๊ฒŒ ๋˜๋”๋ผ๋„,

stash๋กœ ๋œ๋œ ์ž‘์—…์„ ๊ฟ์ณ๋†“๊ณ , ๋ฐ›์•„์„œ ์ž‘์—…ํ•˜๋ฉด ๋  ๋ฟ์ด๋‹ค.

๋‹น์—ฐํžˆ stash๋„ ๊ฒน์น˜๋ฉด conflict๊ฐ€ ๋‚˜๋Š”๋ฐ, ์ด๋Ÿฐ๊ฑด ์•Œ์•„์„œ ์ž˜ mergeํ•ด์ฃผ๋ฉด ๋œ๋‹ค.




๋ฉ”์„ธ์ง€ ๋‚จ๊ธฐ๊ธฐ

stash๋Š” ๊ทธ๋ƒฅ ์จ๋„ ๋˜๊ธด ํ•˜์ง€๋งŒ, ์ปค๋ฐ‹์ฒ˜๋Ÿผ -m ํ”Œ๋ž˜๊ทธ๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ๋‚จ๊ธธ ์ˆ˜๋„ ์žˆ๋‹ค.




stash ์ƒํƒœํ™•์ธ

stash์˜ ์ €์žฅ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด stash list ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
๊ทธ๋Ÿผ ํ˜„์žฌ ์ €์žฅ๋œ stash์˜ ๋ธŒ๋žœ์น˜์™€ ๋ฉ”์„ธ์ง€ ๋“ฑ์„ ๋ณด์—ฌ์ค„ ๊ฒƒ์ด๋‹ค.

ํ•˜๋‚˜ ์ด์ƒ์˜ stash๊ฐ€ ์Œ“์—ฌ์žˆ๋‹ค๋ฉด, ์—ญ์ˆœ์œผ๋กœ stash๊ฐ€ ๋…ธ์ถœ๋  ๊ฒƒ์ด๋‹ค. ์Šคํƒ์ด๋‹ˆ ๋ง์ด๋‹ค.




์ค‘๊ฐ„์—์„œ ๋นผ์˜ค๊ธฐ

stash๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šคํƒ ํ˜•ํƒœ๋กœ ๋™์ž‘ํ•˜์ง€๋งŒ, ์›ํ•œ๋‹ค๋ฉด ๋ฌด์‹œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

stash list์—์„œ ํ™•์ธ๋˜๋Š” ์™ผ์ชฝ์˜ ์‹๋ณ„์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๊ฐ์‹ธ์„œ ์ธ์ž๋กœ ์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.




stash ๋‚ ๋ฆฌ๊ธฐ

์Œ“์—ฌ์žˆ๋Š” stash ์ €์žฅ๋‚ด์—ญ์„ ๋‚ ๋ฆฌ๊ณ ์‹ถ๋‹ค๋ฉด, stash clear๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.




apply & drop

์ •๋ง์ด์ง€ ๊ฐ„๋‹จํ–ˆ๋˜ stash pop์€ ์‚ฌ์‹ค, apply์™€ drop 2๊ฐ€์ง€ ๋ช…๋ น์ด ๊ฒฐํ•ฉ๋œ ๋™์ž‘์ด๋‹ค.

apply๋Š” stash์—์„œ ๋ณ€๊ฒฝ๋‚ด์—ญ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ช…๋ น์ด๊ณ , drop์€ stash ๋‚ด์—ญ์—์„œ ๊ทธ๊ฑธ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์ด๋‹ค.
stash pop์€ 0 ์ธ๋ฑ์Šค์— ๋Œ€ํ•ด ์ด 2๊ฐ€์ง€๋ฅผ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋ผ ๋ณด๋ฉด ๋œ๋‹ค.

apply๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์•„๋ฌด ์ธ์ž๋ฅผ ์ฃผ์ง€ ์•Š์œผ๋ฉด pop์ฒ˜๋Ÿผ ์ตœ๊ทผ๋‚ด์—ญ์„ ๊ฐ€์ ธ์˜ค๋˜, ์‚ญ์ œ๋Š” ํ•˜์ง€ ์•Š๋Š”๋‹ค.

drop๋„ ์‚ฌ์šฉ์กฐ๊ฑด์€ ๋™์ผํ•˜๋‹ค. ์ธ์ž๋ฅผ ์ฃผ์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ๋‚ด์—ญ์„ ์‚ญ์ œํ•œ๋‹ค.




๋ธŒ๋žœ์น˜๋กœ ๋ถ„๋ฆฌํ•˜๊ธฐ

์ž‘์—…ํ•ด๋†จ๋˜ stash ๋‚ด์—ญ ์ž์ฒด๋ฅผ ๋ธŒ๋žœ์น˜๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ๋‹ค.
stash branch๋Š” ๊ทธ๋Ÿด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์ด๋‹ค.

stash branch <๋ธŒ๋žœ์น˜๋ช…>์˜ ํ˜•ํƒœ๋กœ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด,

๊ฐ€์žฅ ์ตœ๊ทผ์˜ stash๋ฅผ pop ํ•œ๋‹ค์Œ์—, ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ๋ธŒ๋žœ์น˜๋กœ ์ž๋™ ์ „ํ™˜๊นŒ์ง€ ํ•ด์ค€๋‹ค.


๊ทธ๋ ‡๋‹ค.



์ฐธ์กฐ
https://www.lainyzine.com/ko/article/git-stash-usage-saving-changes-without-commit/