- Git flow
- Git merge vs. Git rebase
Main branch
: 정식으로 서비스하는 배포단계(release) 의 코드가 모이는 곳Develop branch
: 개발단계의 코드가 모이는 곳Main branch
의 느낌Release branch
: bug 완료되고, 배포 준비되면 release branch 만듬Hotfix
: 배포 후(서비스 도중), Main branch 에서 바로바로 고치는 것
- merge vs. rebase : 방법만 다를 뿐,
branch 병합
을 위해 사용하는 것
- rebase
base
: 해당 branch 가 생성될 때의 commit 지점rebase
: 기준(=pull request 발생 시점)이 되는 commit을 최신화하여 방금 막 branch 를 생성하여 갖고 있음
- conflict
- commit과 commit 사이에서 일어나는 작업 내용 사이의 충돌
rebase
하다보면, conflict 많이 발생
- squash : commit message 를 하나로 합침
- 해당 branch 에서 작업한 내용을
title (요약)
과body(상세 내용)
를 통해 하나의 commit message 로 작성- 보통
rebase
하면서squash
작업도 같이 함
불필요한 merge commit 생성
branch history
가 지저분해지기 쉬움복잡한 프로젝트 history
- merge commit 이 남지 않음
- commit 순서에 관계없이, feature branch 별 commit 으로 구분하여 관리
Rebase는 내 commit의 base를 변경하여, commit history를 일렬로 잘 정리해줌
해당 브랜치의 base commit 확인하는 방법 : git merge-base main feature/sign-in
(필수 아님)
<출처> wecode(코딩 부트캠프) 세션