Skip to content

Unclear to Clear โ€‹

๋ชจํ˜ธํ•จ์„ ๋ช…ํ™•ํ•จ์œผ๋กœ, ๋‚ฏ์„ค์Œ์„ ์ต์ˆ™ํ•จ์œผ๋กœ ๋ฐ”๊พธ๋ฉฐ ์ดํ•ด๋กœ ๋‚˜์•„๊ฐ€๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก

Git โ€‹

๋ฌด์ง€๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ๋ถˆ์•ˆ์„ ์•„์‹ญ๋‹ˆ๊นŒ, ๊ทธ๋ ‡๋‹ค๋ฉด ๊ณต๋ถ€ํ•˜๋ฉด ๋˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ? ์˜ˆ..
์ฒ˜์Œ์œผ๋กœ ๊นƒ๋žฉ์— ์˜ฌ๋ ค์„œ ์ž‘์—…ํ•  ์ผ์ด ์ƒ๊ฒผ๋‹ค! ์•ž์ž๋ฆฌ์— ์•„๋Š” ๊ฒƒ์„ ์„ค๋ช…ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ์ข‹์€ ๊ฐ“ํ”„๋กฑํŠธ ๊ฐœ๋ฐœ์ž ๋ถ„์„ ๊ดด๋กญํ˜€ ๋งŽ์ด ์•Œ์•„๋‚ด๋Š” ์ค‘์ด๋‹ค.

์ปค๋ฐ‹ โ€‹

  • ๋ชจ๋“  ํŒŒ์ผ ์ปค๋ฐ‹ํ•˜๊ธฐ
    ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์Šคํ…Œ์ด์ง•ํ•˜๊ณ  ์ปค๋ฐ‹
md
$ git add .
$ git commit -m "message"

  • ํŠน์ • ํŒŒ์ผ๋งŒ ์„ ํƒํ•˜์—ฌ ์ปค๋ฐ‹ํ•˜๊ธฐ
    ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ ๋ชฉ๋ก์„ ํ™•์ธํ•˜๊ณ  ํŠน์ • ํŒŒ์ผ๋งŒ ์„ ํƒํ•˜์—ฌ ์ปค๋ฐ‹
md
// ์ž‘์—…ํ•œ ๋‚ด์—ญ ํ™•์ธ
$ git status

// ํŠน์ • ํŒŒ์ผ ์Šคํ…Œ์ด์ง•
$ git add ํŒŒ์ผ๊ฒฝ๋กœ/๋ณต๋ถ™

// ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€
$ git commit -m "message"

  • ๋ฐฉ๊ธˆ ํ•œ ์ปค๋ฐ‹ ์ทจ์†Œํ•˜๊ธฐ
    ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์„ ์ทจ์†Œํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์Šคํ…Œ์ด์ง• ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆผ
md
$ git reset HEAD^

  • ๋ฐฉ๊ธˆ ํ•œ ์ปค๋ฐ‹ ์ทจ์†Œ (์Šคํ…Œ์ด์ง• ์œ ์ง€)
    ์ด์ „ ์ปค๋ฐ‹์„ ์ทจ์†Œํ•˜์ง€๋งŒ, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์Šคํ…Œ์ด์ง• ์ƒํƒœ๋กœ ์œ ์ง€
md
$ git reset --soft HEAD^

-์ˆ˜์ •ํ•œ ํŒŒ์ผ์ด ๋งŽ์€๋ฐ, 2๊ฐœ๋งŒ ์ปค๋ฐ‹ํ•˜๊ฒŒ๋˜๋ฉด $ git reset HEAD^ํ•˜๋ฉด ๋‹ค์‹œ 100๊ฐœ ์ค‘ 2๊ฐœ๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋Š” ๊ท€์ฐฎ์Œ ๋ฐฉ์ง€. --soft๋ฅผ ๋ถ™์ด๋ฉด ์ปค๋ฐ‹๋งŒ ์ทจ์†Œ๋˜๊ณ , ๋ณ€๊ฒฝ ๋‚ด์šฉ์€ ์œ ์ง€๋จ

๋‚ด ๋ธŒ๋žœ์น˜์— ์ตœ์‹  ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ฐ˜์˜ํ•˜๊ธฐ โ€‹

๐Ÿ’ก ์ƒํ™ฉ ์ •๋ฆฌ โ€‹

  • ๋กœ์ปฌ dev๋ธŒ๋žœ์น˜๋Š” ์ตœ์‹  ์ƒํƒœ
  • ์ดํ›„ dev์— ์ถ”๊ฐ€ ์ž‘์—… ๋ฐœ์ƒ
  • ๋‚ด ๋ธŒ๋žœ์น˜์— dev์˜ ์ถ”๊ฐ€ ์ž‘์—…์„ ๋ฐ˜์˜ํ•ด์•ผํ•จ
  • ์•„์ง ๋‚ด ๋ธŒ๋žœ์น˜์—์„œ๋Š” ์ž‘์—…ํ•˜๋˜ ์ฝ”๋“œ๋Š” ์—†์Œ
md
# ๋‚ด ๋ธŒ๋žœ์น˜๋กœ ์ด๋™

$ git checkout ๋‚ด ๋ธŒ๋žœ์น˜

# ์ตœ์‹  dev ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ

$ git merge dev

dev๊ฐ€ ์ตœ์‹  ์ƒํƒœ๊ฐ€ ์•„๋‹์ˆ˜๋„ ์žˆ๋‹ค๋ฉด? โ€‹

  • ๋กœ์ปฌ dev๊ฐ€ ์›๊ฒฉ dev๋ณด๋‹ค ๋’ค์ณ์ ธ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ, ์ตœ์‹  dev๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ
md
# dev ๋ธŒ๋žœ์น˜๋กœ ์ด๋™

git checkout dev

# ์ตœ์‹  dev ๊ฐ€์ ธ์˜ค๊ธฐ (์›๊ฒฉ)

git pull origin dev

# ๋‹ค์‹œ ๋‚ด ๋ธŒ๋žœ์น˜๋กœ ์ด๋™

git checkout ๋‚ด๋ธŒ๋žœ์น˜

# ์ตœ์‹  dev ๋ณ‘ํ•ฉ

git merge dev

Merge or Rebase๋กœ ๋‚ด ๋ธŒ๋žœ์น˜ ์ž‘์—… ๋ฐ˜์˜ํ•˜๊ธฐ โ€‹

๐Ÿ’ก ์ƒํ™ฉ ์ •๋ฆฌ โ€‹

  • ๋กœ์ปฌ dev๊ฐ€ ์ตœ์‹  ์ƒํƒœ์—์„œ ๋‚ด ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
  • ๋‚ด ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—… ์ง„ํ–‰
  • ๋‚˜์ค‘์— ์ถ”๊ฐ€๋œ dev ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‚ด ๋ธŒ๋žœ์น˜์— ๋ฐ˜์˜ํ•ด์•ผ๋˜๋Š” ์ƒํ™ฉ

Merge โ€‹

md
# ๋‚ด ๋ธŒ๋žœ์น˜๋กœ ์ด๋™

$ git checkout ๋‚ด๋ธŒ๋žœ์น˜
$ git merge dev
  • ํžˆ์Šคํ† ๋ฆฌ ์œ ์ง€

Rebase โ€‹

md
# ๋‚ด ๋ธŒ๋žœ์น˜๋กœ ์ด๋™

$ git checkout ๋‚ด๋ธŒ๋žœ์น˜
$ git rebase dev