기타/버전 관리

Git Flow

realtrynna 2022. 10. 1. 17:14

 

Git Flow

브랜치 기능을 활용한 변경(버전) 이력 관리 전략이다. 크게 4가지 main / develop / feature / hotfix 브랜치를 생성 후 관리하는데 필요에 따라 improvement/* bugfix/* 등을 추가할 수 있다. 사실 이론적인 부분만 알고 있을 경우 잘 와닿지 않았는데  최근 진행했던 프로젝트에 Git Flow를 사용해 버전을 관리 하였고 이 과정에서 왜 협업에 브랜치 전략이 중요한지 확실히 알게 되었다.

 

Git Repository 구성 

Upstream Remote Repository: 팀원들이 공유하고 있는 최신 코드가 저장되어 있는 원격 저장소

Origin Remote Repository: Upstream 저장소를 Fork 한 원격 개인 저장소

Local Repository: 개인 컴퓨터에 저장돼있는 로컬 저장소

  • Local 저장소에서 작업 완료 후 Origin 저장소로 Push
  • Origin 저장소에 Push 한 브랜치를 Upstream 저장소로 merge 하는 Pull Request를 생성 후 merge
  • 새로운 작업 시에는 Local 저장소에서 Upstream 저장소를 pull 하여 추가 작업 진행

 

Git Flow 브랜치

1. 메인 브랜치

maindevelop 브랜치를 의미한다.

  • main은 현재 배포돼있는 버전
  • develop은 배포될 버전

 

 

2. 보조 브랜치

메인 브랜치(main/develop)를 제외한 브랜치를 의미한다. feature/* topic/* 등이 있다.

  • main 브랜치를 분기로 develop 브랜치를 만듦
  • main에서 나온 develop 브랜치를 활용해 다시 feature 브랜치로 나눔
  • feature는 특정 기능을 개발하는 브랜치를 의미
  • 보조 브랜치는 기능 완료 시까지 유지하며 완성 시 develop으로 merge

 

 

3. 릴리즈 브랜치

배포 직전 버그 수정 등의 기능을 수행하는 브랜치를 의미한다.

  • 기능 구현 완료 후 feature를 develop 브랜치에 mrege
  • 테스트를 위해 develop 브랜치를 분기로 한 release 브랜치 생성
  • release 브랜치에서 에러가 없다면 main 브랜치에 merge
  • 에러가 있다면 수정 후 다시 develop에 mrege 

 

 

4. 핫픽스 브랜치

배포된 main에서 장애 발생 시 수정을 위한 브랜치를 의미한다.

  • main에서 분기하여 hotfix/* 브랜치 생성
  • 장애 수정 후 develop에 merge 후 main 브랜치에 최종 merge

 

 

참고 자료

https://gist.github.com/ihoneymon/a28138ee5309c73e94f9

https://techblog.woowahan.com/2553/

'기타 > 버전 관리' 카테고리의 다른 글

Git  (0) 2022.03.29