Skip to content

Latest commit

ย 

History

History
72 lines (48 loc) ยท 3.34 KB

15_stash.md

File metadata and controls

72 lines (48 loc) ยท 3.34 KB

GIT ๋„๊ตฌ - Stash, Clean

Stash, ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๊ณ  ์ž ์‹œ ์ €์žฅํ•˜๊ธฐ

  • GIT ์—๋Š” ์ž‘์—…ํ•˜๊ณ  ์žˆ๋˜ ์ผ์„ ์ž ์‹œ ์ €์žฅํ•˜๊ณ , ๋‚˜์ค‘์— ๋‹ค์‹œ ๋Œ์•„์™€์„œ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค
  • tracked ์ค‘์ธ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ git stash ๋˜๋Š” git stash push -m "์Šคํƒœ์‹œ ๋ฉ”์‹œ์ง€ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์ž
  • stash ์— ์ˆ˜์ •๋‚ด์—ญ์ด ์ €์žฅ๋˜๊ณ , ํ•ด๋‹น ํŒŒ์ผ์€ ์ˆ˜์ • ์ด์ „์œผ๋กœ ๋˜๋Œ์•„๊ฐ„๋‹ค

  • untracked ์ค‘์ธ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ์—๋Š” git stash -u ๋˜๋Š” git stash --include-untracked ์˜ต์…˜์„ ์ด์šฉํ•œ๋‹ค
  • untracked ํŒŒ์ผ๊นŒ์ง€ ๋ชจ๋‘ stash์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค

  • stash์— ์ €์žฅํ•˜๊ณ  ์‹ถ์ง€๋งŒ, staging area์— ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ๋†”๋‘๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค
  • ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” git stash --keep-index ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค



Working Directory ์ฒญ์†Œํ•˜๊ธฐ

  • stash๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด, ์ž‘์—…์ค‘์ธ ํŒŒ์ผ์„ stashํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ํŒŒ์ผ์„ ์น˜์›Œ๋ฒ„๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค
  • working directory์—์„œ ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ์„ ์ „๋ถ€ ์ง€์šฐ๋ ค๋ฉด git clean ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค
  • ์ถ”์ ์ค‘์ด์ง€ ์•Š์€ ์ •๋ณด๊นŒ์ง€ ๋ชจ๋‘ ์ง€์šฐ๊ณ  ์‹ถ๋‹ค๋ฉด git clean -fd ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค


Stash ํ™•์ธํ•˜๊ธฐ

  • ์ด๋ ‡๊ฒŒ stash์— ์ €์žฅํ•œ ๊ฒƒ์„ ํ™•์ธํ•˜๋ ค๋ฉด git stash list๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค
  • stash๋Š” stack ๋ฐฉ์‹์œผ๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ€์žฅ ์ˆซ์ž๊ฐ€ ๋‚ฎ์€ ๊ฒƒ์ด ๊ฐ€์žฅ ์ตœ๊ทผ์— stashํ•œ ๊ฒƒ์ด๋‹ค

  • ๊ฐ stash๋งˆ๋‹ค ์–ด๋–ค ๋ณ€๊ฒฝ๋‚ด์—ญ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด git stash show ์Šคํƒœ์‹œ ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค
  • ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ ค๋ฉด git stash show ์Šคํƒœ์‹œ --patch ์˜ต์…˜์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค



Stash ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ์ €์žฅํ•œ stash๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋ ค๋ฉด git stash apply ์Šคํƒœ์‹œ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค
  • ๋งŒ์•ฝ git stash apply๋งŒ ์ž…๋ ฅํ•˜๋ฉด, stack์ฒ˜๋Ÿผ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” stash๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค
  • ์ฐธ๊ณ ๋กœ stash๋Š” ์ €์žฅํ•œ branch ์™ธ์˜ ๋‹ค๋ฅธ branch์—์„œ๋„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค

  • ๋˜๋Š” git stash pop์„ ์ด์šฉํ•ด์„œ stash๋ฅผ ๊ฐ€์ ธ์˜ด๊ณผ ๋™์‹œ์— ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ๋‹ค



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

  • stash๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด git stash drop ์Šคํƒœ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค
  • ๋งŒ์•ฝ ๋ชจ๋“  stash๋ฅผ ์ „๋ถ€ ์‚ญ์ œํ•˜๋ ค๋ฉด, git stahs clear๋ฅผ ํ•˜๋ฉด ๋œ๋‹ค



Stash๋ฅผ ์ ์šฉํ•œ Branch ๋งŒ๋“ค๊ธฐ

  • ํ˜„์žฌ ์ƒํƒœ์—์„œ stash๊ฐ€ ์ ์šฉ๋œ branch๋ฅผ ์ถ”๊ฐ€๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค
  • git stash branch ๋ธŒ๋žœ์น˜๋ช… ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด, stash๊ฐ€ ์ ์šฉ์ด ๋œ branch๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค