Git์ด๋?
Git์ ํ์๊ด๋ฆฌ ํด ์ค ํ๋๋ก, ํ์ผ์ ์์ฑํ๋๋ฐ ์์ด, ๋ณํํ๋ ๊ณผ์ ์ ๊ด๋ฆฌํด์ฃผ๋ ๋๊ตฌ์ ๋๋ค.
GitHub๋ ํ์ผ ๊ด๋ฆฌ์ ์์ด ๋ก์ปฌ์ ์๋ ํ์ผ์ ๊ณต์ ํ ์ ์๋๋ก ์๊ฒฉ(remote) ์ ์ฅ์(repository)๋ฅผ ์ ๊ณตํ๋ ์ฅ์์ด๋ฉฐ, Branch์ ์ปค๋ฐ์ ํตํด ํ์ผ์ ๋ณํ ๊ณผ์ ์ ์ ์ฅํด๋ ์ ์์ต๋๋ค.
Branch?
๊ฐ์ง(branch)๋ผ๋ ๋ป์ผ๋ก, ํ๋์ ํ์ผ์ ๊ด๋ฆฌํ ๋ ๋ณํํ๋ ๊ณผ์ ์์ ์๋ก ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๋ฉด ์ด๋ฅผ ๊ด๋ฆฌํ ๋ ๊ฐ๊ฐ์ Branch๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค
์์ธํ ์ฌํญ์ ์ฌ๊ธฐ๋ฅผ ํตํด ์์๋ณด๊ณ , ์ฐ๋ฆฌ๋ ์ด ๋ธ๋์น์ ๋ณํฉ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
์๋ก ๋ค๋ฅธ ํ์ผ์ ํ๋์ ํ์ผ๋ก ๋ง๋๋ ค๋ฉด ์ด๋ป๊ฒ ํ์ง?
Branch๋ ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ(์ปค๋ฐ)์ผ๋ก ์ด๋ฃจ์ด์ง ํ๋์ ๊ฐ์ง์ ๋๋ค. ํ์ฌ ๊ฐ์ง์์ ๋ฐ๋ผ๋ณด๊ณ ์๋ ๊ฒ์ HEAD๋ฅผ ํตํด ๋ํ๋ด๋ฉฐ, ์ด๋ ๋ค๋ฅธ Branch์ ์ปค๋ฐ๊ณผ ๋ณํฉํ ์ ์์ต๋๋ค.
ํ๋์ ํ์ผ(์ปค๋ฐ)๋ก ๋ง๋๋ (๋ณํฉํ๋) ๋ฐฉ์์ ํฌ๊ฒ 3๊ฐ์ง๋ก ๋๋ ์ ์์ต๋๋ค.
- ์๋ก์ด ํ์ผ(์ปค๋ฐ)์ ๋ง๋ค์ด ์ ์ฅ (Merge)
- ๋ณ๊ฒฝ์ฌํญ์ ํ๋์ ํ์ผ(์ปค๋ฐ)๋ก ๋ง๋ค์ด ์ ์ฅ (Squash & Merge)
- ์๋ ํ๋์ ํ์ผ(์ปค๋ฐ)์ธ ๊ฒ์ฒ๋ผ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅ (Rebase)
Merge
์๋ก์ด ์ปค๋ฐ์ ๋ง๋ค๊ณ ํ์ฌ Branch์ ๋ณํฉํ Branch์ ์ปค๋ฐ์ ๋น๊ตํ์ฌ ์๋ก์ด ์ปค๋ฐ์ ์ ์ฅํฉ๋๋ค.
// ํ์ฌ Main
git merge Feature

Squash and Merge
๋ณ๊ฒฝ์ฌํญ์ ํ๋๋ก ๋ณํฉํ์ฌ ํ์ฌ ๋ธ๋์น์ ์๋ก์ด ์ปค๋ฐ์ผ๋ก ๋ฑ๋กํฉ๋๋ค.
// ํ์ฌ Main
git merget --squash Feature

Rebase
๋ณ๊ฒฝ์ฌํญ๋ค์ ํ์ฌ Branch์ ๋ถ์ฌ ์๋ ํ๋์ Branch ์ฒ๋ผ ๋ฑ๋กํฉ๋๋ค.
// ํ์ฌ my-branch
git rebase main

๊ฒฐ๋ก
๋ธ๋์น ๋ณํฉ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์์ง๋ง, git ์ ๋ต์ ์ด๋ป๊ฒ ๊ฐ์ ธ๊ฐ์ง์ ๋ฐ๋ผ ์์ ์ ๋ณ๊ฒฝ์ฌํญ๋ค์ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ ๋ฐฉ์์ ์ฑํํ์ฌ ์ฌ์ฉํด์ผํฉ๋๋ค.
๋๋์
ํ๋ก์ ํธ ์ฐธ์ฌ ์์, ๋จ์ conflict๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด rebase๋ฅผ ์ฌ์ฉํ์์ผ๋ฉฐ, PR์ squash์ ๋ํ ์ดํด๋๊ฐ ์์ด Git ๊ทธ๋ํ๋ฅผ ๋จ์ํ๊ฒ ๋ง๋ค๊ธฐ ์ํด squash๋ฅผ ์ฌ์ฉํ์์ง๋ง, ์ ๋ด์ฉ์ ๊ณต๋ถํ๋ฉด์ ์ผ๋ง๋ ๋ฉ์ฒญํ๊ฒ ์ฌ์ฉํ์ง๋ฅผ ๊นจ๋ฌ์์ต๋๋ค. ๊ณต๋ถํ ์ดํ์, ๋ธ๋์น๋ฅผ ๋ณํฉํ๋๋ฐ ์์ด ๋ด๊ฐ ์ํ๋ ๋ฐฉ์๊ณผ ๊ทธ๋ํ์ ๋ชจ์์ ์๊ฐํ๋ฉฐ ๊ทธ๋ํ๋ง ๋ด๋ ํ์ผ์ ํ๋ฆ์ด ์ด๋ป๊ฒ ๋ณํด์๋์ง ์ ์ ์๊ฒ ์ง๋ ค ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ฐธ์กฐ
๋์ด์ค๊ธฐ ์์ฒญ ๋ณํฉ ์ ๋ณด - GitHub Docs
๊ธฐ๋ฅ ๋ถ๊ธฐ์ ๋ชจ๋ ์ปค๋ฐ์ ์ ์งํ๊ฑฐ๋, ๋ชจ๋ ์ปค๋ฐ์ ๋จ์ผ ์ปค๋ฐ์ผ๋ก ์ค์ฟผ์ํ๊ฑฐ๋, ๊ฐ๋ณ ์ปค๋ฐ์ head ๋ถ๊ธฐ์์ base ๋ถ๊ธฐ๋ก ๊ฐ๋ณ ์ปค๋ฐ์ ๋ค์ ์ ์ฉํ์ฌ ๋์ด์ค๊ธฐ ์์ฒญ์ ๋ณํฉํ ์ ์์ต๋๋ค.
docs.github.com
https://hudi.blog/git-merge-squash-rebase/
Git์ ๋ค์ํ ๋ธ๋์น ๋ณํฉ ๋ฐฉ๋ฒ (Merge, Squash & Merge, Rebase & Merge)
ํ์ต ๋ฐฐ๊ฒฝ ์ฐ์ํํ ํฌ์ฝ์ค ๋ฌ๋กํ์์ ๋ธ๋์น ์ ๋ต ๊ฐ์ ๊ณผ ๋ฐฐํฌ์ ๊ด๋ จ๋ ์ด์ผ๊ธฐ๋ฅผ ํ๋ฉด์ ๋ค์ํ ๋ณํฉ๋ฐฉ๋ฒ์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ๋์๋ค. ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด๋ฉด์, ์์ง Git์ ๋ค์ํ ๋ณํฉ ๋ฐฉ๋ฒ์ ๋ํ
hudi.blog
'๐ STUDY > Git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Git] Git Flow ๋ธ๋์น ์ ๋ต? (0) | 2024.06.07 |
|---|