๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT-Engineering/Development

(Git) ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜(branch)์—์„œ ์ด๋ฏธ ์ž‘์—… ์ค‘์ผ ๋•Œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?(Feat. stash)

by ๐Ÿงž‍โ™‚๏ธ 2024. 1. 27.
๋ฐ˜์‘ํ˜•

Q. ์ง€๊ธˆ๊นŒ์ง€ ์ƒˆ๋กœ ์ž‘์—…ํ•œ ์ฝ”๋“œ ์ž‘์—… ๋‚ด์šฉ์ด ์žˆ๋Š”๋ฐ master ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์—ˆ์–ด์„œ, ์—ฌ๊ธฐ์— ์•ˆ ์˜ฌ๋ฆฌ๊ณ  ๋‹ค๋ฅธ branch์—๋งŒ ์˜ฌ๋ฆฌ๊ณ  ์‹ถ์€๋ฐ, ์ด๋ฏธ ์ด๋ ‡๊ฒŒ ์ˆ˜์ •์ด ๋‹ค ๋œ ์ƒํ™ฉ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

 

์ž‘์—… ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ์ด๋™ํ•˜๋ฉฐ, ๋ธŒ๋žœ์น˜ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•

 

์ด๋ฏธ ์ž‘์—…ํ•œ ๋‚ด์šฉ์ด master ๋ธŒ๋žœ์น˜์— ์žˆ๊ณ , ์ด๋ฅผ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด, Git์˜ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์ž‘์—… ๋‚ด์šฉ์„ ์ƒˆ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•˜๋Š” ๊ณผ์ •์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค:

  1. ํ˜„์žฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ €์žฅ: ๋จผ์ €, ํ˜„์žฌ master ๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด git stash๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์€ ์ž‘์—… ์ค‘์ธ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๊ณ  ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊นจ๋—ํ•œ ์ƒํƒœ๋กœ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
    git stash
  2. ์ƒˆ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ฒดํฌ์•„์›ƒ: ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์—์„œ new-branch๋ฅผ ์›ํ•˜๋Š” ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
    git checkout -b new-branch
  3. ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ ์šฉ: **stash**์— ์ €์žฅ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ƒˆ ๋ธŒ๋žœ์น˜์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
    git stash pop
  4. ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ปค๋ฐ‹: ์ด์ œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ƒˆ ๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.
    git add . git commit -m "Commit message"
  5. ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ธŒ๋žœ์น˜ ํ‘ธ์‹œ: ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์›๊ฒฉ ์ €์žฅ์†Œ์— ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.
    git push origin new-branch

์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ํ†ตํ•ด master ๋ธŒ๋žœ์น˜์— ์žˆ๋˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ƒˆ ๋ธŒ๋žœ์น˜๋กœ ์˜ฎ๊ธฐ๊ณ , ์ด๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์žƒ์ง€ ์•Š์œผ๋ฉด์„œ ๊น”๋”ํ•˜๊ฒŒ ๋ธŒ๋žœ์น˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€