본문 바로가기
카테고리 없음

git flow / trunk-based 브랜치 전략

by Hyeon_E 2023. 1. 29.

git branch를 깔끔하게 만들도록 도와주는 방법론

  • git flow
  • github flow
  • gitlab flow
  • trunk-based
  • 등등

이런 방법론으로 branch를 만들면 브랜치관리가 쉬워지고 팀원이 많아도 개발절차가 매끄러워짐

 

git flow 전략

프로그램이 항상 안정적인 release를 해야한다면(ex.게임개발) git flow전략을 쓰면 됨

git flow는 크게 5개 브랜치를 운영

  • main branch
  • develop branch(개발용)
  • feature branch(develop에 기능추가용)
  • hotfix branch(main 버그해결용)
  • release branch(develop branch를 main branch에 합치기 전에 최종 테스트용)

 

 Trunk-based 전략

바로 대중에 배포를 해도 상관없는 프로그램이고 크게 대격변 업데이트를 안하는 안정적은 프로그램이면 많은 branch를 만들 필요가 없음

  • main branch
  • feature branch(기능 추가용)
  1. 기능추가, 버그픽스가 필요하면 main 브랜치에서 새로운 브랜치를 하나 만들어서 코드를 짬
    • 브랜치마다 작명 잘하는게 중요
  2. 기능이 완성되었으면 main 브랜치에 합침
    • 이제 브랜치 쓸데없으니 삭제
  3. main 브랜치에 있는 코드를 필요할 때 마다 유저들에게 배포

 

결론적으로 어느 정도 개발이 진척이 되었거나 프로 개발자로 구성되어있는 팀이면 trunk-based를 쓰는게 훨씬 편리함

최근 유행한 CI/CD 이런 식으로 개발하는 곳들도 trunk0based 개발방식을 적용

출시된 버전의 안정성이 중요한 프로그램들, 아직 뼈대가 확실하지 않아 연구식으로 개발하는 프로그램들은 git flow가 적절할 수 있음

 

- merge를 할때 어떤 방법을 쓰는 것이 좋은가?

기록을 남겨야하는 중요한 브랜치를 merge할 땐 3-way merge

기록을 남길 필요없는 쓸데없는 브랜치를 merge할 땐 squash, rebase 쓰면 됨

취향의 차이일뿐이니 그때그때 원한는 방법을 선택하면 됨

 

 

 

댓글