
๋ด ๋ธ๋์น์ ์ปค๋ฐ๋ค์ ๊ธฐ์ค ๋ธ๋์น ์์ ๋ค์ ์์
๊ฒฐ๊ณผ์ ์ผ๋ก ํ์คํ ๋ฆฌ๊ฐ ์ผ์ง์ (linear) ์ด ๋จ
๐ ์ฅ์
1. ํ์คํ ๋ฆฌ๊ฐ ์์ฃผ ๊น๋ํจ
๋ถํ์ํ merge commit ์์
๋ก๊ทธ ์ฝ๊ธฐ ์ฌ์
๐ ๋จ์
์ปค๋ฐ ํด์๊ฐ ๋ฐ๋
์ด๋ฏธ ๊ณต์ ๋ ๋ธ๋์น์์ ์ฐ๋ฉด ์ฌ๊ณ ๋จ
conflict๊ฐ ์ปค๋ฐ ๋จ์๋ก ์ฌ๋ฌ ๋ฒ ๋ ์ ์์
ํผ์ ์์ ํ๋ feature ๋ธ๋์น
PR ์ฌ๋ฆฌ๊ธฐ ์ ์ ์ปค๋ฐ ์ ๋ฆฌ
main ์ต์ ์ปค๋ฐ์ ๋ฐ์ํ๊ณ ์ถ์ ๋
"ํ์คํ ๋ฆฌ ์ ๋ฆฌ์ฉ ๋๊ตฌ" ๋๋
-> ๋
ธํธ์ ๋ฆฌ ์ ๋๋ก ์ดํดํ๋ฉด ์ฌ์ธ๋ฏ
(์ ๋ฆฌ ๋ ๋ด์ฉ ๋ค์ ๊ณต๋ถํ ๋ด์ฉ์ ์ฎ๊ฒจ ์ ๋ ๋๋)
๋ ๋ธ๋์น๋ฅผ ๊ทธ๋๋ก ํฉ์น๊ณ merge commit์ด๋ผ๋ ์๋ก์ด ์ปค๋ฐ์ ํ๋ ์์ฑํจ
๊ธฐ์กด ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ์ ๋ ์์ ํ์ง ์์
๐ ์ฅ์
ํ์คํ ๋ฆฌ๊ฐ ์ค์ ์์ ํ๋ฆ ๊ทธ๋๋ก ๋จ์
ํ์ ์ ์์ ํจ (๊ณต์ ๋ธ๋์น์ ์ ํฉ)
conflict๊ฐ ํ ๋ฒ์ ๋ฐ์
๐ ๋จ์
ํ ํ์
์ด๋ฏธ ์๊ฒฉ์ ๊ณต์ ๋ ๋ธ๋์น
main, develop ๊ฐ์ ์ค์ ๋ธ๋์น
โ์ธ์ ์ด๋ค ๋ธ๋์น๊ฐ ํฉ์ณ์ก๋์งโ๊ฐ ์ค์ํ ๊ฒฝ์ฐ
์๊ฒฉ ์ ์ฅ์์ ์ต์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ก์ปฌ๋ก ๊ฐ์ ธ์ค๊ธฐ๋ง ํจ
๋ด ์์ ๋ธ๋์น์๋ ์๋ฌด ๋ณํ๋ ์์
๋ณ๊ฒฝ ์ฌํญ์origin/main๊ฐ์ ์๊ฒฉ ์ถ์ ๋ธ๋์น์๋ง ๋ฐ์๋จ
โ working directory ๋ณ๊ฒฝ ์์
โ ํ์ฌ ๋ธ๋์น ๋ณ๊ฒฝ ์์
โญ ์๊ฒฉ ๋ธ๋์น ์ ๋ณด๋ง ์ ๋ฐ์ดํธ
๐ ๊ฐฑ์ ๊ณผ ๋น์ทํ ๋๋์ด๋ผ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธ ํ ์ง์ ํฉ์ณ์ผ ํจ!
git fetch+git merge(๊ธฐ๋ณธ)
-> ๊ฐ์ ธ์ค์๋ง์ ๋ฐ๋ก ํฉ์นจ
git fetch origin
git merge origin/main
โญ ํ์ฌ ๋ธ๋์น๊ฐ ๋ฐ๋ก ๋ณ๊ฒฝ๋จ
โผ๏ธ ์ถฉ๋ ๋ฐ์ ๊ฐ๋ฅ โผ๏ธ
์ฐธ๊ณ
https://kr.linkedin.com/pulse/what-git-merge-difference-between-rebase-shruthi-rajkumar?tl=ko