rebase

rebase๋ฅผ ๋‚จ๋ฐœํ•˜๋ฉด ์•ˆ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ์–ด๋–ค ํ”„๋กœ์ ํŠธ์— ์žˆ๋Š”์ง€, ์–ด๋–ค ์ปค๋ฐ‹๋“ค์„ ํ—€๋Š”์ง€์— ๋”ฐ๋ผ rebase๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์ด ์˜ฌ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ฆฌ์˜ ํ•„์š”์„ฑ์„ ๋А๊ผˆ๋‹ค.

๋‹ค๋งŒ ๊นƒํ—ˆ๋ธŒ๊ฐ™์€ ์ฝ”๋“œ ์ €์žฅ์†Œ์—๋Š” ํ‘ธ์‹œํ•œ ๋‚ด์šฉ์„ ๋กœ์ปฌ์—์„œ rebaseํ•ด ๋‹ค์‹œ ํ‘ธ์‹œํ•˜๋Š” ๊ฒƒ์€ ์ด๋ฏธ ํ‘ธ์‹œํ–ˆ๋˜ ๋‚ด์šฉ์„ pull๋ฐ›์•˜๋˜ ๋™๋ฃŒ๋“ค์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ผ๊ฐ€์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค. ๋กœ์ปฌ ์ปค๋ฐ‹ ํ›„์— ํ•„์š”์— ๋”ฐ๋ผ rebase๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ํ˜„์žฌ์˜ ์ƒ๊ฐ์œผ๋กœ์„œ๋Š” ๋งž๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

git rebase : ๋ง ๊ทธ๋Œ€๋กœ ์ปค๋ฐ‹ํ•œ ๋‚ด์šฉ์„ rebaseํ•˜๋Š” ๊ฒƒ์ด๋‹ค. base๋ฅผ ๋‹ค์‹œ ์žก๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค.

rebase์— ์—ฌ๋Ÿฌ ์˜ต์…˜์ด ์žˆ์ง€๋งŒ ์ž์ฃผ ์‚ฌ์šฉํ•  ๊ฒƒ ๊ฐ™์€ ์˜ต์…˜๋งŒ ์ ๊ฒ ๋‹ค.

git rebase -i HEAD~2 ๋Š” ํ—ค๋“œ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ปค๋ฐ‹์œผ๋กœ๋ถ€ํ„ฐ 2๊ฐœ์˜ ์ปค๋ฐ‹์„ ๋ฆฌ๋ฒ ์ด์Šคํ•˜๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค. -i๋Š” interactive์˜ต์…˜์œผ๋กœ ํ„ฐ๋ฏธ๋„์—์„œ ๋Œ€ํ™”ํ˜•์‹์œผ๋กœ ์–ด๋–ป๊ฒŒ rebaseํ•  ์ง€๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์ฃผ ์‚ฌ์šฉํ•  ์˜ต์…˜์€ squash๋กœ s๋กœ ์ค„์—ฌ์„œ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

pick 7c65355 Task 1/3
pick 2639543 Task 2/3
pick d442427 Task 3/3  

์œ„ ์„ธ์ค„์„ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฐ”๊พธ๋ฉด pick์„ ์„ค์ •ํ•œ ์ปค๋ฐ‹์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ ๊ฐœ์˜ ์ปค๋ฐ‹์œผ๋กœ ํ•ฉ์ณ์ง„๋‹ค.

pick 7c65355 Task 1/3
squash 2639543 Task 2/3
squash d442427 Task 3/3

2. git pull์ด git fetch + merge๋ผ๋ฉด git pull -rebase๋Š” git fetch + rebase์ด๋‹ค. git pull โ€“rebase master : ํ”ผ์ณ ๋ธŒ๋žœ์น˜ ๋‚ด๋ถ€์—์„œ ์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด master๋กœ rebase๋œ๋‹ค.

๊ทธ๋ฆผ์œผ๋กœ ๋ณด์ž.

rebase1

issue3๋ธŒ๋žœ์น˜์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋œ๋‹ค.

git rebase master  
rebase2

๋˜ํ•œ mergeํ•  ๋•Œ fast-forward๊ด€๊ณ„์— ๋Œ€ํ•ด์„œ ์•Œ์•„์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด ์ปค๋ฐ‹ Aํžˆ์Šคํ† ๋ฆฌ์— ์ปค๋ฐ‹ Bํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

fastforward

์ปค๋ฐ‹ Bํžˆ์Šคํ† ๋ฆฌ์— ์ปค๋ฐ‹ Aํžˆ์Šคํ† ๋ฆฌ ์ „์ฒด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์œ„ ๊ทธ๋ฆผ์˜ A์™€ B๋Š” fast-forward ๊ด€๊ณ„์ด๋‹ค. ๋ฐ˜๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ์˜ A์™€ B๋Š” fast-forward ๊ด€๊ณ„๊ฐ€ ์•„๋‹ˆ๋‹ค. fastforward2

fast-forward ์ฐธ๊ณ  ๋งํฌ : https://koreabigname.tistory.com/65 git-flow ์ฐธ๊ณ  ๋งํฌ : https://techblog.woowahan.com/2553/

Last updated