Git Branch
์๋ก
ํ๋ก์ ํธ๋ฅผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์์ํ๊ธฐ ์ , ๋ธ๋์น๋ฅผ ๋ง๋ค๊ณ ํฉ๋ณํ๋ ์ฐ์ต์ ํด๋ดค๋ค. ํ๋ก์ ํธ ์งํํ๋ ๊ณผ์ ์์๋ ๊ฐ๋ฐ ์ด์ธ์ ๋ถ๊ฐ์ ์ธ ์์์ ์๊ฐ์ ๋ ์๋ชจํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์, ๋ฏธ๋ฆฌํ ์ ์๋ ๊ฑด ์ฐ์ตํด๋ณด๊ณ ๋ค์ด๊ฐ๋๊ฒ ๋ง๋ค๊ณ ์๊ฐํ๋ค.
๋ณธ๋ก
ํ๋ก์ ํธ์์ ์ ํํ git workflow์ Gitlab flow ์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ main ๋ธ๋์น์์ develop ๋ธ๋์น์ develop ๋ธ๋์น์์ featrue ๋ธ๋์น๋ฅผ ๋ง๋๋ํ๋ ์ฐ์ต์ ์งํํ๊ณ , ์ญ์์ผ๋ก ํฉ๋ณํ๋ ์ฐ์ต์ ์งํํ๋ค.
๋ถ๊ธฐ
๋ธ๋์น๋ฅผ ๋ง๋๋ ๋ช ๋ น์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
git branch <์์ฑํ ๋ธ๋์น ์ด๋ฆ> <๋ถ๊ธฐ์ ์ด ๋๋ ๋ธ๋์น ์ด๋ฆ>
git checkout -b <์์ฑํ ๋ธ๋์น ์ด๋ฆ>
git branch์ ๋ธ๋์น ์์ฑ๋ง ํ๋ค.- <๋ถ๊ธฐ์ ์ด ๋๋="" ๋ธ๋์น="" ์ด๋ฆ="">์ ์๋ตํ๋ฉด ํ์ฌ ์์นํ๊ณ ์๋ ๋ธ๋์น์์ ๋ธ๋์น๊ฐ ์์ฑ๋๋ค. ๋ถ๊ธฐ์ ์ด>
git checkout -b์ ๋ธ๋์น ์์ฑ๊ณผ ๋์์ ํด๋น ๋ธ๋์น๋ก ์ด๋ํ๋ค.

- checkout ๋ช ๋ น์ด๊ฐ ์์ฑ๊ณผ ์ด๋์ ๋์์ ์ํํด์ฃผ๊ธฐ ๋๋ฌธ์ ํธํ๋ค !
develop ๋ธ๋์น์ ๊ฒฝ์ฐ ์๊ฒฉ ์ ์ฅ์์์ ๊ด๋ฆฌ๋๊ณ , feature ๋ธ๋์น์ ๊ฒฝ์ฐ ๊ฐ์ธ ๋ก์ปฌ์์ ๊ด๋ฆฌ๊ฐ ๋๋ค. ๋ธ๋์น๋ฅผ ๋ง๋ค๊ณ ์๊ฒฉ์ ์ฌ๋ฆฌ๋ ๋ช
๋ น์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
git push <์๊ฒฉ ์ ์ฅ์> <์ฌ๋ฆด ๋ธ๋์น ์ด๋ฆ>

- ์๊ฒฉ ์ ์ฅ์๋ origin, ์ฌ๋ฆด ๋ธ๋์น ์ด๋ฆ์ feature/test๋ก ์ค์ ํ๋ค.
- ํด๋น ๋ช ๋ น์ด๋ฅผ ์ํํ๊ณ ๊นํ๋ธ์ ์ ์ํ๋ฉด ์ ์์ ์ผ๋ก ๋ธ๋์น๊ฐ ์ฌ๋ผ๊ฐ์์ ํ์ธํ ์ ์๋ค.
</br> ๊นํ๋ธ์์ ๋ธ๋์น๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ๋ ์๋ค.

View all branches์ผ๋ก ๋ค์ด๊ฐ๋ค.

- ์ฐ์ธก ์๋จ์
New branch๋ฒํผ์ ๋๋ฅธ๋ค.

- ๊ทธ๋ผ ๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค.
- New branch name : ์์ฑํ ๋ธ๋์น ์ด๋ฆ์ ์ ๋ ฅํ๋ค.
- Sourece : ๋์ฌ ๋ธ๋์น๋ฅผ ์ ํํ๋ค.
- ์ค์ ์ด ๋๋๋ฉด
Create new branch๋ฅผ ๋๋ฅธ๋ค. - ๊ทธ๋ผ, ์๊ฒฉ ์ ์ฅ์์
feature/1์ด ์์ฑ๋์์ ํ์ธํ ์ ์๋ค.
ํฉ๋ณ
feature ์์ develop ๋ก ํฉ๋ณํ๊ธฐ ์ , ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธ์ ํด์ผํ๋ค. ์๋ฌด ๋ธ๋์น๋ ๋ง ํฉ๋ณ์ ํ๊ฒ ๋๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ์ฌ์ฉํ๋ ๊ฒ์ด PR ์ด๋ค. PR๋ฅผ ํตํด ํฉ๋ณํ๊ธฐ ์ ๋ฌธ์ ๊ฐ ์๋์ง ํ์๋ค๊ณผ ๊ฐ์ด ์ฒดํฌํ๊ณ ๋ธ๋์น๋ฅผ ๋ณดํธํ ์ ์๋ค.
feature/test ์์ develop ๋ก PR๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.

- ์ข์ธก ์์ด์ฝ
Pull Request์ ๋๋ฅด๊ณ ,Create Pull Request...์ ๋๋ฅธ๋ค.

- PR ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง๋ฅผ ์ค์ ํ๊ณ , ์ ๋ชฉ๊ณผ ์ค๋ช ์ ์์ฑํ๋ค.
- ์ดํ ํ๋จ์ ์๋
Create Pull Request๋ฅผ ๋๋ฅธ๋ค.

- ๊ทธ๋ผ ๋ค์๊ณผ ๊ฐ์ ์ฐฝ์ด ๋์จ๋ค.
- ์ด๋ feature/test ๋ธ๋์น๊ฐ ๋ก์ปฌ์๋ง ์๊ณ ์๊ฒฉ ์ ์ฅ์์๋ ์๊ธฐ ๋๋ฌธ์ ๋์จ๋ค.
- ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ฆฌ๊ธฐ ์ํ ์ด๋ฆ์ ์
๋ ฅํ๋ ๊ฒ์ธ๋ฐ, ๊ทธ๋๋ก
OK๋ฒํผ์ ๋๋ฅธ๋ค. - ์ดํ, ๊นํ๋ธ์ ๋ค์ด๊ฐ๋ค.

- ๋ค์๊ณผ ๊ฐ์ด PR์ด ์๊ฒผ์์ ํ์ธํ ์ ์๋ค.

- ํ์ฌ๋ ๋ณ๋๋ก ์์ฑํ ๋ด์ฉ์ด ์๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋จํ๊ฒ ๋์ค๋ ๊ฒ ๊ฐ๋ค.
- ํฉ๋ณํ๊ธฐ ์ํด์
Merge pull request๋ฅผ ๋๋ฅด๊ณ ,Confirm merge๋ฅผ ๋๋ฅธ๋ค.

- ํฉ๋ณ์ด ์๋ฃ๊ฐ ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ด
Merged์ํ๋ก ๋ณํ๊ฒ ๋๊ณ , PR์ ๋ซํ๋ค. - feature ๋ธ๋์น๋ ์๊ฒฉ ์ ์ฅ์์์ ๋ฌด์กฐ๊ฑด ๊ด๋ฆฌํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์, ์ญ์ ํ ์์๊ฐ ์๋ค๋ฉด
Delete branch๋ฒํผ์ ๋๋ฌ์ ์๊ฒฉ ์ ์ฅ์์์ feature ๋ธ๋์น๋ฅผ ์ญ์ ํ๋ค.- ๋ก์ปฌ์ ์๋ feature ๋ธ๋์น๋ ์ญ์ ๊ฐ ์๋๋ค.
- ๋ก์ปฌ์ ์๋ ๋ธ๋์น๋ฅผ ์ญ์ ํ๊ธฐ ์ํด์๋ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
git branch -d <์ญ์ ํ ๋ธ๋์น ์ด๋ฆ>
- ์ญ์ ํ๊ธฐ ์ํด์๋ ํ์ฌ ์์นํ๊ณ ์๋ ๋ธ๋์น๊ฐ ์ญ์ ํ ๋ธ๋์น๊ฐ ์๋ ๋ค๋ฅธ ๋ธ๋์น์ด์ด์ผ ํ๋ค.
- ์๊ฒฉ์ ์๋ ๋ธ๋์น๋ฅผ ์ญ์ ํ๋ ๋ช
๋ น์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
git push origin --delete <์ญ์ ํ ๋ธ๋์น ์ด๋ฆ>
๋ง๋ฌด๋ฆฌ

์ฒ์์ผ๋ก ๋ธ๋์น๋ฅผ ์์ฑ, ์ด๋, ํฉ๋ณ ๊ทธ๋ฆฌ๊ณ ์ญ์ ๊น์ง ํด๋ณด๋ ์๊ฐ์ ๊ฐ์ก๋ค. ๋ธ๋์น๋ผ๋ ์์ญ์ด ์ด๋ ต๋ค๊ณ ์๊ฐํ๊ณ ์์๋๋ฐ, ํ ๋งํ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ์ํด๋ณด๊ณ ์ด๋ ต๋ค๊ณ ์๊ฐํ๋ ์ต๊ด์ ๊ณ ์ณ์ผ ๊ฒ ๋ค.
ํฉ๋ณ์ด๋ผ๊ณ ์ฐ๊ณ PR์ ๋ค๋ฃฌ ๊ฒ ๊ฐ๋ค. ํฉ๋ณ ๊ณผ์ ์์ ์๊ธฐ๋ ์ถฉ๋์ ํด๊ฒฐํ๋ ๊ณผ์ ๋ ์๋ง ํ๋ก์ ํธ ์งํ ๊ณผ์ ์์ ์๊ธธ ๊ฒ์ด๋ผ๊ณ ์๊ฐ๋๋ค. ์ถฉ๋ ๊ด๋ จ ๋ด์ฉ๋ ๋จ๊ฒจ์ผ๊ฒ ๋ค.
๊ธฐ์ด์ ์ธ ๋ถ๋ถ๋ง ๋ค๋ค๊ธฐ๋ ํ๊ณ ํผ์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ๋ง ์ฐ์ตํ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก๋ ๋ ๋ง์ ๊ฒ๋ค์ด ์์ ๊ฑฐ ๊ฐ๋ค. ํ์ ์ ํ๋ ๊ธฐํ๊ฐ ์๊ธด๋ค๋ฉด ํ์ตํ ๋ด์ฉ์ ์ ์ฌ์ฉํ๊ณ , ์๋กญ๊ฒ ๋ฐฐ์ฐ๋ ๋ด์ฉ์ด ์๋ค๋ฉด ๊ทธ๋ ์ถ๊ฐํด์ผ๊ฒ ๋ค.