[Git] Git Branch์ ๋ํ ์ดํด์ ํ์ฉ
์๋ณธ ๊ฒ์๊ธ: https://velog.io/@euisuk-chung/Git-Branch์-๋ํ-์ดํด์-ํ์ฉ
Git Branch์ ๋ํ ์ดํด์ ํ์ฉ
Git Branch๋ Git์์ ๋งค์ฐ ์ค์ํ ๊ฐ๋ ์ค ํ๋์ ๋๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ Git Branch๋ ๋ฌด์์ธ์ง, Git Branch๋ฅผ ํ์ฉํ์ฌ ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ๊ด๋ฆฌํ ์ ์๋์ง, ๊ทธ๋ฆฌ๊ณ Git Branch๋ฅผ ํ์ฉํ ํ์ ๋ฐฉ๋ฒ ๋ฑ์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Git Branch๋ Git์์ ์ฝ๋๋ฅผ ๋ถ๊ธฐํ์ฌ ๊ด๋ฆฌํ๋ ๊ฐ๋
์
๋๋ค. Git์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก master
๋ผ๋ ํ๋์ ๋ธ๋์น๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด master
๋ธ๋์น์์ ์๋ก์ด ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ์์
์ ์งํํฉ๋๋ค. ์๋ก์ด ๋ธ๋์น๋ฅผ ๋ง๋ค๋ฉด, ๊ธฐ์กด์ master
๋ธ๋์น์ ๋
๋ฆฝ์ ์ผ๋ก ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
Git Branch๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
2.1. Git Branch ์์ฑ
์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1
$ git branch <์ ๋ธ๋์น ์ด๋ฆ>
2.2. Git Branch ์ด๋ฆ ๋ณ๊ฒฝ
๋ธ๋์น ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1
$ git branch -m <์ ๋ธ๋์น ์ด๋ฆ>
2.3. Git Branch ์ญ์
๋ธ๋์น๋ฅผ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1
$ git branch -d <์ญ์ ํ ๋ธ๋์น ์ด๋ฆ>
2.4. Git Branch ์ ํ
๋ค๋ฅธ ๋ธ๋์น๋ก ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1
$ git checkout <์ ํํ ๋ธ๋์น ์ด๋ฆ>
Git์์๋ ๋ค์ํ ๋ธ๋์นญ ์ ๋ต์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ ๋ํ์ ์ธ Git ๋ธ๋์นญ ์ ๋ต์ธ Git Flow, Github Flow, GitLab Flow๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
3.1. Git Flow ์ ๋ต
Git Flow ์ ๋ต์ ํฌ๊ฒ develop
, feature
, release
, hotfix
, master
๋ธ๋์น๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด์ ๋ธ๋์น์์ ์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑํ์ฌ ๊ธฐ๋ฅ ์ถ๊ฐ๋ ๋ฒ๊ทธ ์์ ์ ์งํํฉ๋๋ค. ๋ชจ๋ ๊ธฐ๋ฅ์ด ๊ฐ๋ฐ๋๋ฉด release
๋ธ๋์น์์ ๋ฐฐํฌ ๊ฐ๋ฅํ ๋ฒ์ ์ ๋ง๋ค์ด master
๋ธ๋์น์ ๋ณํฉํฉ๋๋ค.
3.2. Github Flow ์ ๋ต
Github Flow ์ ๋ต์ ๋จ์ผ ๋ธ๋์น master
์์ ์์
์ ์งํํ๋ ์ ๋ต์
๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋๋ feature
๋ธ๋์น์์ ์์
์ ํ๋ฉฐ, ์ดํ master
๋ธ๋์น๋ก ๋ณํฉํฉ๋๋ค. ๋ฐฐํฌ๋ master
๋ธ๋์น๋ก ์งํ๋ฉ๋๋ค.
3.3. GitLab Flow ์ ๋ต
GitLab Flow ์ ๋ต์ ํฌ๊ฒ production
, feature
, hotfix
๋ธ๋์น๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด์ ๋ธ๋์น์์ ์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑํ์ฌ ์์
์ ์งํํ๋ฉฐ, ๋ชจ๋ ๊ธฐ๋ฅ์ด ๊ฐ๋ฐ๋๋ฉด production
๋ธ๋์น๋ก ๋ณํฉํฉ๋๋ค.
Git Branch๋ฅผ ํ์ฉํ ํ์ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
4.1. Git Branch๋ฅผ ํ์ฉํ ์ฝ๋ ๋ฆฌ๋ทฐ
์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋, ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ด ์ฝ๋๋ฅผ ๊ฒํ ํ๊ณ ๋ฆฌ๋ทฐํ ์ ์๋๋ก feature
๋ธ๋์น์์ ์์
์ ์งํํฉ๋๋ค. ์ดํ, ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํตํด ๋ณ๊ฒฝ ์ฌํญ์ ํผ๋๋ฐฑ๋ฐ๊ณ ์์ ํฉ๋๋ค.
4.2. Git Branch๋ฅผ ํ์ฉํ Pull Request
๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ์๋ฃ๋ ํ, ์ฝ๋ ๋ฆฌ๋ทฐ๊ฐ ์๋ฃ๋๋ฉด master
๋ธ๋์น๋ก ๋ณํฉํ๋ Pull Request๋ฅผ ์์ฑํฉ๋๋ค. Pull Request๋ฅผ ์์ฑํ๋ฉด ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ด ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒํ ํ๊ณ , ์ดํ master
๋ธ๋์น๋ก ๋ณํฉํ ์ ์์ต๋๋ค.
Git Branch ์ถฉ๋์ ๋ ๊ฐ์ ๋ธ๋์น์์ ๊ฐ์ ํ์ผ์ ์์ ํ ๋ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ถฉ๋์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ถฉ๋์ด ๋ฐ์ํ ํ์ผ์ ์ด์ด์ ์ถฉ๋ ๋ถ๋ถ์ ์์ ํฉ๋๋ค.
- ์ถฉ๋ ๋ถ๋ถ์ ์์ ํ ํ, ํ์ผ์ ์ ์ฅํ๊ณ ์ปค๋ฐํฉ๋๋ค.
Git Branch ๊ด๋ฆฌ ์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ธ๋์น๋ฅผ ๋ง์ด ๋ง๋ค ๊ฒฝ์ฐ, ๋ธ๋์น ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๋๋ค.
- ๋ธ๋์น ๋ณํฉ ์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
- ๋ธ๋์น ์ฌ์ฉ์ด ๋๋ฌด ์์ ๋ก์์ง๋ฉด, ์ฝ๋์ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ด๋ ต์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด์๋, Git Branch ๊ด๋ฆฌ์ ๋ํ ๊ท์น์ ์ค์ ํ๊ณ , ๋ธ๋์น๋ฅผ ์ ์ ํ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ค์ ํฌ์คํธ๋ ๋ง์ฝ์ ์ถฉ๋์ด ๋ฐ์ํ๊ฒ ๋๋ฉด ์ด๋ป๊ฒ ์์ ์ ํด์ผํ๋์ง ํ๋ฒ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค :)