๋ฆฌ๋ฒ ์ด์Šค(Rebase)

๐Ÿ“„ ๋ฆฌ๋ฒ ์ด์Šค(Rebase)

๋ฆฌ๋ฒ ์ด์Šค๋Š” ํŒŒ์ƒ๋œ ๋ธŒ๋žœ์น˜์˜ ๊ธฐ์ค€์ด ๋˜๋Š” ๋ฒ ์ด์Šค ์ปค๋ฐ‹์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ํ•ฉ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ๋จธ์ง€์™€ ์ฐจ์ด์ ์ด ๋ญ˜๊นŒ์š”?

merge vs rebase

image

์šฐ์„  rebase์™€ merge์˜ ๊ณตํ†ต์ ์€ ๋ธŒ๋žœ์น˜๋ฅผ ํ•ฉ์นœ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฐจ์ด์ ์€ rebase๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” merge๋ณด๋‹ค ๊นจ๋—ํ•œ commit history๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋จธ์ง€๋Š” ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์„ ์ƒ์„ฑํ•ด์„œ ํŒŒ์ƒ๋œ ๋ธŒ๋žœ์น˜์— ์ ์šฉ๋˜์ง€๋งŒ,

๋ฆฌ๋ฒ ์ด์Šค๋Š” ๋ฒ ์ด์Šค ์ปค๋ฐ‹์„ ์žฌ์„ค์ • ํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์น˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ปค๋ฐ‹๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์„ ํ˜• ๋ธŒ๋žœ์น˜ ํ˜•ํƒœ๋ฅผ ๋„๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“„ ์ฃผ์˜ํ•  ์ !

๋ฆฌ๋ฒ ์ด์Šค๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ Base๊ฐ€ ๋ฐ”๋€ ์ปค๋ฐ‹๋“ค์€ ๋ณต์‚ฌ๋˜์–ด ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š”๋ฐ, ์ด ๊ณผ์ •์—์„œ commit Id๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์™€ ํ•จ๊ป˜ ํŒŒ์ƒ๋œ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์„ ํ•  ๊ฒฝ์šฐ, ๋ฆฌ๋ฒ ์ด์Šค๋ฅผ ํ•˜๋ฉด merge conflict๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์„œ๋ฒ„์— ์—…๋กœ๋“œ๋œ ํžˆ์Šคํ† ๋ฆฌ๋Š” ์ ˆ๋Œ€ ๋ฆฌ๋ฒ ์ด์Šคํ•˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค

๐Ÿ“„ ์ˆœ์„œ

  1. git checkout (ํŒŒ์ƒ๋œ ๋ธŒ๋žœ์น˜)๋ฅผ ์ด์šฉํ•ด ํŒŒ์ƒ๋œ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. git rebase master๋ฅผ ์ž…๋ ฅํ•ด master ๋ธŒ๋žœ์น˜์˜ ์ตœ์‹ ๋ฒ„์ „์œผ๋กœ ํฌ์ธํ„ฐ๋ฅผ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค. rebase

  3. git merge (ํŒŒ์ƒ๋œ ๋ธŒ๋žœ์น˜)๋ฅผ ์ด์šฉํ•˜๋ฉด merge๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ์ดํ›„ git branch -d (๋ธŒ๋žœ์น˜๋ช…)์„ ์ž…๋ ฅํ•ด ์“ธ๋ชจ ์—†์–ด์ง„ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•ด ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ์ค๋‹ˆ๋‹ค.

๐Ÿ“„ rebase โ€“onto

ํŒŒ์ƒ๋œ ๋ธŒ๋žœ์น˜์—์„œ ๋‹ค์‹œ ํŒŒ์ƒ๋œ ๋ธŒ๋žœ์น˜์˜ ํฌ์ธํ„ฐ๋ฅผ master ๋ธŒ๋žœ์น˜์— ์˜ฎ๊ฒจ์ฃผ๋Š” ๊ฒƒ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.
์ด๋•Œ rebase --onto์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. rebase2
์œ„์™€ ๊ฐ™์ด ํฌ์ธํ„ฐ๋ฅผ ์˜ฎ๊ฒจ ์ค€ ํ›„, merge๋ฅผ ํ•˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ merge๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

  • ๋“œ๋ฆผ์ฝ”๋”ฉ

Tags:

Categories:

Updated:

Leave a comment