๐๋ธ๋์น ๋ง๋ค๊ธฐ
ํจ์จ์ ์ธ ํ์ ์ ์ํด์๋ ์ผ๊ด๋ ๋ธ๋์น ๋ค์ด๋ฐ ๊ท์น์ ์งํค๋ ๊ฒ์ด ์ข๋ค. ํ๋ง๋ค ์ ํด์ง ๋ฐฉ์์ด ์๊ฒ ์ง๋ง, ๋ค์๊ฐ์ ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ณดํธ์ ์ด๋ค.
main ๋ธ๋์น
๐ ์ ์์ ์ผ๋ก ๋์ํ๋ ๋ฒ์ ์ด ์ ์ฅ๋๋ ๊ธฐ๋ณธ ๋ธ๋์น
๋ธ๋์น ๋ถ๊ธฐ
์์ ์ ๋ชฉ์ ๊ณผ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ๋ธ๋์น๋ฅผ ๋ถ๋ฅํ๊ณ ๋ค์ด๋ฐํ๋ค. ์ฃผ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ ์ฌ์ฉํ๋ค.
- ๊ธฐ๋ฅ ๊ฐ๋ฐ: feature/๊ธฐ๋ฅ๋ช ํํ๋ก ๋ช ๋ช
- ์ถ์ ์ค๋น: release-x.x ํ์์ผ๋ก ๋ช ๋ช
- ๊ธด๊ธ ์์ : hotfix-x.x.x ํ์์ผ๋ก ๋ช ๋ช
๋ธ๋์น ๋ณ๋ ฌ ์์ ์ดํดํ๊ธฐ
๋ธ๋์น๋ฅผ ์ฌ์ฉํ๋ ์ฃผ๋ ์ด์ ๋ ๋ณ๋ ฌ ์์ ์ ์ํด์์ด๋ค. ๋ธ๋์น๋ ๋ ๋ฆฝ๋ ์์ ๊ณต๊ฐ์ด๋ฏ๋ก, ์๋ก ๋ค๋ฅธ ์์ ์ ๋์์ ์งํํ ์ ์๋ค.
๋ธ๋์น ์คํ
- feature/signup ๋ธ๋์น์์ test.txt ํ์ผ์ ์ถ๊ฐ
- feature/login ๋ธ๋์น๋ก ์ ํ
- feature/login ๋ธ๋์น์์๋ test.txt ํ์ผ์ด modified ์ํ๋ก ํ์
๐ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ณต์ ๋๋ ์ด์ ๋ ์์ง ์ปค๋ฐ์ ํ์ง ์์๊ธฐ ๋๋ฌธ
๋ธ๋์น ๋ ๋ฆฝ์ฑ๊ณผ ์ปค๋ฐ
๋ธ๋์น๋ฅผ ์์ฑํ๋ค๊ณ ๋ฐ๋ก ๋ณ๋ ฌ ์์ ์ด ๋๋ ๊ฒ์ ์๋๋ค. ์ปค๋ฐ์ ํ ์๊ฐ๋ถํฐ, ๋ธ๋์น๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ค.
- feature/signup ๋ธ๋์น์์ ์ปค๋ฐ
- feature/login ๋ธ๋์น๋ก ์ ํํ์ฌ test.txt ํ์ผ์ด ์กด์ฌํ๋์ง ํ์ธ
- feature/login ๋ธ๋์น์๋ test.txt ํ์ผ์ด ์กด์ฌํ์ง ์ปค๋ฐ ํ์คํ ๋ฆฌ์๋ ๊ธฐ๋ก์ด ์๋ค.
๐ ๋ธ๋์น ๋ ๋ฆฝ์ฑ์ ์ปค๋ฐ ๊ธฐ์ค์ผ๋ก ๊ฒฐ์
์ฃผ์์ฌํญ
์ปค๋ฐํ ๋๋ ํ์ฌ ์์ ์ค์ธ ๋ธ๋์น๋ฅผ ๋ฐ๋์ ํ์ธํ๊ธฐ!
Github ๋ธ๋์น ์์ฑ(CLI)
ํ์ ์ ์ํด์๋ ๋ก์ปฌ์์ ์์ ํ ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์๋ ๊ณต์ ๋ฅผ ํด์ผ ํ๋ค.
์๊ฒฉ ๋ธ๋์น ๋ชฉ๋ก ํ์ธ
git branch -r
๋ก์ปฌ ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ํธ์
git push origin ๋ธ๋์น๋ช
๋ก์ปฌ ๋ธ๋์น๋ฅผ ํธ์ํ๋ฉด, ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์์ ํ์ธํ๊ณ ์์ ๋ ํ ์ ์๋ค.
๐Git Branch Merge ์ ๋ต
Fast Forward
๊ฐ์ฅ ๋จ์ํ ๋ณํฉ ๋ฐฉ์์ผ๋ก, ํ ์ชฝ ๋ธ๋์น์๋ง ๋ณ๊ฒฝ์ฌํญ์ด ์์ ๋ ์ฌ์ฉํ๋ค.
- ๋ณ๋์ ๋ณํฉ ์ปค๋ฐ์ด ์์ฑ๋์ง ์๊ณ ๋ธ๋์น ํฌ์ธํฐ๋ง ์ด๋ํ๋ค.
- ํ์คํ ๋ฆฌ๊ฐ ๋จ์ํ๊ณ ์ง์ ์ ์ผ๋ก ์ ์ง๋์ด ๋จ์ํ๋ค.
- ํ์ ์์๋ ์ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ, ๋ธ๋์น ํ์คํ ๋ฆฌ๋ฅผ ๋ช ํํ ๋จ๊ธฐ๊ธฐ ์ด๋ ค์ด ๋ฐฉ์์ด๋ค.
3Ways
๋ ๋ธ๋์น ๋ชจ๋์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
- ๋ณํฉ ์, Git์ด A์ B์ ๋ณ๊ฒฝ ์ฌํญ์ ๋น๊ตํ์ฌ ์ ๋ฆฌํ ํ ๋ณํฉ ์ปค๋ฐ์ ์์ฑํ๋ค.
- ๋ ๋ฆฝ์ ์ธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ฉฐ, ๋ช ํํ ์ปค๋ฐ ํ์คํ ๋ฆฌ ์ ์ง๊ฐ ๊ฐ๋ฅํ๋ค.
- ์ถฉ๋ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
๐Pull Request์ Merge
์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๊ณ pushํ์๋ค๋ฉด ๊นํ ๋ ํฌ์งํ ๋ฆฌ ํ์ด์ง์์ Pull Request๋ฅผ ์์ฑํ ์ ์๋ค.
Pull Request๋?
Github์์ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค๋ฅธ ๊ฐ๋ฐ์์๊ฒ ๋ฆฌ๋ทฐ ์์ฒญํ๋ ๊ธฐ๋ฅ
Pull Request์ ์ฃผ์ ๊ธฐ๋ฅ
- ์ฝ๋ ๋ฆฌ๋ทฐ: ํ์๋ค์ด ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒํ ํ๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ ์๋ค.
- ์๋ํ ํ ์คํธ: CI/CD ํ์ดํ๋ผ์ธ์ ํตํด ์๋์ผ๋ก ํ ์คํธ๋ฅผ ์งํํ ์ ์๋ค.
- ํ ๋ก : ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๋ ผ์๊ฐ ๊ฐ๋ฅํ๋ค.
Pull Request ์์ฑ๋ฒ
- ์ฝ๋ ๋ณ๊ฒฝํจ~ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํํจ~ -> ์ ๋ xxxxxx
- ํ๋ฆฌํ์คํธ๋ฅผ ์์ฑํ ๋๋ ๋ช ํํ ์ ๋ชฉ๊ณผ, ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์์ธํ ์ค๋ช ์ ์์ฑํ์
## ๋ณ๊ฒฝ ์ฌํญ
- ๋ณ๊ฒฝ๋ ๊ธฐ๋ฅ์ด๋ ๋ฒ๊ทธ ์์ ์ ๋ํ ์ค๋ช
## ๋ณ๊ฒฝ ์ด์
- ๋ณ๊ฒฝ์ด ํ์ํ ์ด์ ์ ๋ฐฐ๊ฒฝ
## ํ
์คํธ
- ํ
์คํธ ๋ฐฉ๋ฒ๊ณผ ๊ฒฐ๊ณผ
## ๊ด๋ จ ์ด์
- ๊ด๋ จ๋ ์ด์ ๋ฒํธ๋ ๋งํฌ
Merge๊ฐ ๋จธ์ง
๋ ๊ฐ์ ๋ธ๋์น๋ฅผ ํ๋๋ก ํฉ์น๋ ์์
- Pull Request๋ฅผ ์คํํ๋ฉด, ์๋ ๋จธ์ง ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ์๋ ค์ค๋ค.
- ๋จธ์ง๋ฅผ ํ ๋๋ ๋ณํฉ ์ปค๋ฐ(Merge Commit)์ด ์์ฑ๋๋ค.
- ๋ ๋ธ๋์น ๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ถฉ๋ํ ๊ฒฝ์ฐ(Merge conflict), ์๋์ผ๋ก ํด๊ฒฐํด์ผ ํ๋ค.
Merge Conflict ํด๊ฒฐ ๋ฐฉ๋ฒ
Merge Conflict๋ ๋ ๋ธ๋์น์์ ๋์ผํ ํ์ผ์ ๊ฐ์ ๋ถ๋ถ์ด ์์ ๋์์ ๋ ๋ฐ์ํ๋ค.
๊ฐ๋จํ Merge Conflict๋ ์น ์๋ํฐ์์ ์์ ํ ์ ์๋ค. <<<<<<<, =======, >>>>>>> ํ์๋ ๋ถ๋ถ์ ์์ ํ๋ค.
Merge ํ ๋ธ๋์น ๊ด๋ฆฌ
๋จธ์ง ํ ์ฌ์ฉํ์ง ์๋ ๋ธ๋์น๋ ์ญ์ ํ๋ ๊ฒ์ด ์ข๋ค. ๋ณต๊ตฌ ๊ฐ๋ฅํ๋ ๋ธ๋์น ์ญ์ ๋ฅผ ์ต๊ดํํ์๐ก