Git flow, Git rebase

강인웅·2021년 12월 19일
0
post-custom-banner

Git flow

  1. main 브랜치에서 Develop이라는 브랜치라는 개발용 브랜치를 하나 만든다.
  2. 각 작업 사항 브랜치들은 이 Develop 브랜치에서 따온다.
  3. 각 작업이 끝난 브랜치는 Develop 브랜치로 머지를 시킨다
  4. 머지된 Develop브랜치에서 release 브랜치를 생성 한다
  5. release 브랜치에서는 QA를 하며 오류가 나는 사항들은 고친 후에 Develop에 머지시킨다
  6. 만약 더 이상의 오류가 없다고 하면 최종 main 브랜치에 머지를 시킨다.
  7. 혹시나 main brnach(프로덕션 서버)에서 오류가 발생된다면 메인 브렌치에서 HotFix 브랜치를 만든다
  8. HotFix 브랜치에서 오류가 성공적으로 해결이 된다면 main 브랜치에 머지 시키고 Develop 브랜치 각 기능 브랜치에 머지시킨다

이것이 기본적이 Git flow이다.

Git rebase

사용하는 이유

  1. merge 사용 시 불필요한 merge commit이 생성
  • 모든 feature branch 마다 'merge commit'이 남는다. 만약 main 브랜치를 공유하는 개발자가 많고, 프로젝트의 규모가 크다면 branch history가 지저분해지기 쉽다
  1. 복잡한 프로젝트 history
  • 독립된 브랜치에서 로직 하나를 작성하고 수정하더라도, 다른 작업과 그 내역이 겹쳐 구분하기 어려워진다. 이런 상황을 프로젝트의 history가 복잡하다고 표현한다.

기본적으로 사용하던 git merge flow


git rebase flow

불필요한 commit메세지가 사라짐과 동시에 커밋 메세지들의 순서가 달라진 걸 볼 수 있다.

merge의 경우 base와 달리 rebase는 Main의 최근 머지된 history base로 옮겨주는 걸 확인할 수 있다.

profile
Developer
post-custom-banner

0개의 댓글