[Git] Git을 잘 이용하는 방법
💡 해당 내용은, 생활코딩 영상을 기반으로 작성하였습니다.
💡 Git Flow의 이미지 출처이자, 내용을 더 알아보시고 싶다면, A successful Git branching model 사이트를 확인하시면 됩니다.
Branch의 사용 용도
Git Flow model
🔥 Master Branch
- 처음에 바로 생기는 메인 Branch로서 제품으로 출시될 수 있는 Branch
- 실제로 서버에 Release하는 순간에 Master Branch로 Release Branch의 내용을 Merge함
- Git의 Tag기능을 이용해 해당 버전의 Release는 Master Branch의 해당 커밋임을 알 수 있도록 기록해둠
- 사용자에게 제공되는 버전만을 모아놓은 Branch
🔥 Develop Branch
- Master로부터 파생된 Develop Branch 에서 실질적인 개발을 이어나감
- Feature Branch의 내용을 작업 후 Develop Branch에 병합함
- 특정 기능에 속하지 않는, 버그 같은 것의 처리는 Develop에서 이어 나감
Feature Branch
- 특정 기능을 개발해야 하는 경우에 별도의 Feature Branch를 생성해서 해당 브랜치에서 작업함
Release Branch
- 작업을 마무리하고 사용자들에게 결과를 배포해야하는 시점(다운로드, 서버 반영)에 새롭게 Release Branch 생성
- Release Branch 이후에 발생하는 버그 수정, 문서 업데이트 등의 작업은 해당 브랜치 안에서 작업함
- 작업이 끝날 때 마다 Develop Branch에 Merge 해줌
- Release Branch에서 사용자에게 제공하고 싶은 것은 Master Branch에 머지시키고, 개발을 이어나가야 하는 내용은 Develop Branch에 머지시킴
Hotfix Branch
- 사용자에게 버전을 제공(Master Branch)했는데, 긴급하게 버그가 생겼을 경우에 버그 해결을 한 뒤 다시 Master에 Merge 시킴 —> 해당 내용은 Tag로 기록을 함
- 버그 해결 후 개발을 이어나가야 하므로 Develop Branch로 병합시킴
Git Flow 실습
- Github 원격 레포지토리 생성 및 주소 Copy 해두기
git init .
: 깃 레포지토리 생성(초기화)git remote add origin Copy한주소
: 원격 저장소 등록(add)git remote -v
: 연결된 원격저장소 리스트 확인하기vim f1.txt
>git add f1.txt
>git commit -am “master 1”
: 파일 생성 후, 등록, 커밋git checkout -b develop
: develop이라는 브랜치 생성후 체크아웃-
git log --decorate --all —graph --oneline
: git log 확인 -
같은 과정 develop 브랜치로 반복 (커밋까지)
-
git checkout -b feature-some
: Feature 브랜치 생성 및 체크아웃하고 반복 git checkout develop
>git merge feature-some
: 개발 브랜치로 변경 후 기능 브랜치를 머지함git branch -d feature-some
: 개발 브랜치 삭제git checkout -b ‘release-1.0’
: 릴리즈 하고 싶은 경우 1.0 버전의 릴리즈 브랜치 생성 및 체크아웃 & 반복git checkout master
>git merge release-1.0
>git tag -a 1.0 -m “first release” master
: release branch를 마스터에 반영(Merge)시킴, 그 후 릴리즈 표시를 위해 태깅함git checkout develop
>git merge release-1.0
:릴리즈에서의 변경 사항을 개발 브랜치에도 머지시킴git checkout -b hot fix-some
>vim f1.txt
>git commit -am “hotfix 5”
: Hot Fix 사항이 생겼을 때를 위한 hot fix 브랜치 작업 반복git checkout master
>git merge hotfix-some
>git tag -a 1.1 -m “hotfix some” master
: hotfix 작업 사항 마스터에 반영- 동일 작업 develop branch에도 반영
🔥 Important 🔥
- 새로운 브랜치 생성 전에는 반드시
git pull
해서 다른 사람의 변경 사항 확인 - Feature 브랜치는 독립적으로 실행
- Feature 브랜치는 Develop 브랜치 내용 모두 가져야함, Develop 브랜치는 Feature 충돌 X
- Feature 브랜치 개발이 끝나면 Develop으로 이동해서 Feature 브랜치 내용을 Merge 시킴
- Release 브랜치 변경사항은 Develop 브랜치로 바로 바로 반영시킴
- Hotfix 브랜치도 바로 반영시킴
- Master 브랜치는 높은 권한을 가진 사람이 엄격하게 통제해야함
Leave a comment