๐Ÿ“’TIL) Git Rebase ํ•˜๊ธฐ

TaeYangยท2021๋…„ 10์›” 24์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
8/8


์˜ค๋Š˜์€ ์ปค๋ฐ‹์„ ํ•˜๋‚˜๋กœ ํ•ฉ์น ์ˆ˜์žˆ๋Š” Git Rebase์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค

Git Rebase

Git Rebase ์™œ ํ•˜์ง€?

๋‹ค๋“ค ํ‰์†Œ์— Git์„ ๋งŽ์ด ์‚ฌ์šฉํ• ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ์ฝ”๋“œ๋“ค์„ ์ˆ˜์ •ํ•˜๊ณ  commit์„ ์ž์ฃผ ํ•˜๋Š”๊ฒŒ ์Šต๊ด€์ด ๋˜๊ณ  push๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ๋™ํ•œ ํ–ˆ๋˜ ์ปค๋ฐ‹ ๋‚ด์šฉ๋“ค์ด ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ๋‚จ์•„ ์ง€์ €๋ถ„ํ•ด ๋ณด์ด๋Š”๋ฐ ๊ทธ๋Ÿด๋•Œ Rebase๋ฅผ ์‚ฌ์šฉํ•ด ์ปค๋ฐ‹์„ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ค€๋‹ค

Git rebase ์‚ฌ์šฉ์ˆœ์„œ

๋ธŒ๋ Œ์น˜์—์„œ ์ž‘์—…์„ ํ•˜๋ฉฐ ์ปค๋ฐ‹์„ 2~3๊ฐœ์ •๋„ ์Œ“์•„๋‘ก๋‹ˆ๋‹ค ๊ทธํ›„์— ์‹œ์ž‘ํ•˜๋Š” ์ˆœ์„œ๋ฅผ ์ ์–ด๋ณผ๊ฒ ์Šต๋‹ˆ๋‹ค

  • git add .
  • git commit -m"๋‚ด์šฉ"
  • git rebase -i master(์ตœ๊ทผ๋งŒ๋“œ์‹ ๋ถ„๋“ค์€ main)

    ์ด๋Ÿฐ ํ™”๋ฉด์ด ๋‚˜์˜ฌ๊ฒ๋‹ˆ๋‹ค!
  • ์ œ์ผ ์ƒ๋‹จ pick๋งŒ ๋‚จ๊ธฐ๊ณ  ๋‚˜๋จธ์ง€ pick๋Š” s(squash)๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
  • ์ด๋ ‡๊ฒŒ ๋ฐ”๊ฟ”์ฃผ๊ณ  ESC ๋ฅผ ๋ˆ„๋ฅด๊ณ  :wq๋ฅผ ํ•ด ๋‚˜๊ฐ€์ค€๋‹ค.
  • ๋‚˜๊ฐ€๋ฉด ์ด๋Ÿฐ ์ฐฝ์ด ๋œฐ๊ฒ๋‹ˆ๋‹ค. ์ €๋Š” ์ปค๋ฐ‹์— ๋‚ด์šฉ ํ•œ์ค„๋งŒ ๋ณด์ด๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค ์ง€์šฐ๊ณ  ์ €์žฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ rebase๋Š” ๋์ž…๋‹ˆ๋‹ค git log๋ฅผ ์ณ์„œ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ง„ ์•„๋ฆ„๋‹ค์šด ์ปค๋ฐ‹์„ ๋ณด๋ฉฐ ํ๋ญ‡ํ•ด ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Rebase ๋„์ค‘ Conflict ๋‚ฌ์„๋•Œ

conflict๊ฐ€ ๋‚ฌ๋‹ค๋ฉด ์•„๋งˆ ํŒŒ์ผ์ด ๋‚ ๋ผ๊ฐ„๊ฑฐ ์ฒ˜๋Ÿผ ๋ณด์ผ๊ฒ๋‹ˆ๋‹ค.
๋‹นํ™ฉ ํ•˜์ง€๋ง๊ณ  ํ‰์†Œ์— conflict๋ฅผ ํ•ด๊ฒฐํ•˜๋“ฏ์ด ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
-์ถฉ๋Œ๋‚œ ์ฝ”๋“œ๋“ค์„ ์ˆ˜์ •ํ•˜๊ณ 

  • git add .๋ฅผ ํ•ด์ฃผ๊ณ  commit๋ฅผํ•˜๋ฉด ์ ˆ๋Œ€ ์•ˆ๋ฉ๋‹ˆ๋‹ค!!
  • commit๋ง๊ณ  git rebase --continue๋ฅผ ํ•ด์„œ ๋˜‘๊ฐ™์ด ์ง„ํ–‰ํ•ด ์ฃผ์‹œ๋ฉด ํ•ด๊ฒฐ ๋ฉ๋‹ˆ๋‹ค!
profile
์Œ์•… ์ „๊ณต ์ด์˜€๋˜ ์˜ˆ๋น„ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์žโ˜€๏ธ

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