[Git] git rebase ๐ŸŽก

Inah-_-ยท2021๋…„ 3์›” 31์ผ
0

Github

๋ชฉ๋ก ๋ณด๊ธฐ
1/2
post-thumbnail

rebase๋กœ commit ํšŸ์ˆ˜ ์ค„์ด๊ธฐ

rebaseํ•˜์ง€ ์•Š์„ ์‹œ ๋ฌธ์ œ์ 

๋ถˆํ•„์š”ํ•œ merge commit ์ƒ์„ฑ

๋ชจ๋“  feature branch๋งˆ๋‹ค "merge commit"์ด ๋‚จ๊ฒŒ ๋˜๋Š”๋ฐ,
main branch๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŽ๊ณ  ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ฒŒ ๋˜๋ฉด
branch history๊ฐ€ ์–ด๋งˆ๋ฌด์‹œํ•˜๊ฒŒ ์ง€์ €๋ถ„ํ•ด์ง„๋‹ค.

ํ”„๋กœ์ ํŠธ history ๋ณต์žก๋„

๋…๋ฆฝ๋œ branch์—์„œ ๋กœ์ง ํ•˜๋‚˜๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋”๋ผ๋„ ๋‹ค๋ฅธ ์ž‘์—…๊ณผ
๊ทธ ๋‚ด์—ญ์ด ๊ฒน์ณ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค.


๊ผญ 'rabase'ํ•ด์•ผ ํ• ๊นŒ?

branch๋ฅผ ํ•ฉ์น  ๋•Œ Merge๋ฅผ ์จ์•ผ ํ•˜๋Š”์ง€ Rebase๋ฅผ ์จ์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š”
์ •๋‹ต์ด ์—†๋‹ค๊ณ  ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ๋‚˜ ํŒ€์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ „๋žต์ด ๋‹ฌ๋ผ์ง€๋ฉฐ,
๋กœ์ปฌ์—์„œ history๋ฅผ ์ •๋ฆฌํ•  ๋•Œ Rebase๋ฅผ ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ
์ด๋ฏธ ์›๊ฒฉ ์ €์žฅ์†Œ์— Push๋œ ์ปค๋ฐ‹์€ Rebase ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋ผ๊ณ  ํ•œ๋‹ค.


git rebase flow

commit 3๊ฐœ ์ดํ•˜๋กœ ์Œ“์˜€์„ ๋•Œ ์ž‘์—…์ค‘์ธ branch์—์„œ git rebase -i master ํ•ด์ค€๋‹ค.

์˜ค๋ž˜๋œ commit์„ ์„ ํƒํ•˜๊ณ  ๋‚˜๋จธ์ง€ commit์€ s๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ  esc + :wq

์ด ๋•Œ ์ˆ˜์ •์šฉ ์—๋””ํ„ฐ๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ, ๋‚จ๊ธธ "commit massage" ์ž‘์„ฑ ํ›„ :wq

Successfully rebased๊ฐ€ ๋–ด๋‹ค๋ฉด git log ํ™•์ธํ•˜์—ฌ commit์ด ํ•˜๋‚˜๋กœ rebase ๋๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

์ดํ›„ Pushํ•ด์ค€๋‹ค.

profile
Backend Developer

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