Git Hub에서 레포에 들어가 Issues 탭에서 이슈를 생성해 준다. 이때 #20
이 이슈 넘버로 체크하고 넘어가면 된다. 위에서 생성한 이슈 넘버는 #20 이지만 지금 작성하고 있는 기능은 #18이라서 아래서는 #18로 진행한다.
main 브랜치에서 dev 브랜치를 파준다. 나중에 버전을 배포할 때 활용할 release 브랜치도 미리 만들어 주었다. dev에서 기능을 작성하고 완성이 되면 release 브랜치로 넘겨주고 release에서 main으로 넘겨줌으로써 하나의 버전이 완성된다고 보면 된다.
dev 브랜치에서 이슈 넘버를 활용한 브랜치를 생성해 준다. 이때 주의 사항으로는 dev는 항상 최신을 유지해야 하기 때문에 pull을 받아준 다음에 브랜치를 생성한다. feature/#18
로 기능을 추가하는 이슈임을 명시해 주었다.
기능을 작성해서 커밋이 여러개로 나뉘었다면 dev에 Rebase를 해 줘야 한다. 정리하자면 순서가 기능 작성 -> Commit -> Rebase -> PR
이렇게 간다고 보면 된다. 이때도 항상 dev가 최신인지 체크한 상태에서 진행해야 하며 pull을 먼저 받아야 하는 상황이라면 git stash
명령어를 활용해서 작업한 내용을 잠시 빼뒀다가 pull을 받고 난 뒤에 다시 작업물을 가져와서 체크 후 commit -> rebase를 진행해 주면 된다.
PR을 진행하고 dev로 merge해 주면 위 처럼 기능 별 commit이 dev에 잘 모아져서 꼽히게 된다. 필요에 따라 완성된 버전은 release 브랜치에 다시 꼽아서 main으로 보내주면 되고 버그가 있다면 hotfix를 활용하는 방법도 있다.
중요한 점은 Git Flow 브랜치 전략은 방법이 아닌 규칙이기 때문에 같은 팀원끼리 규칙을 잘 정하여 수행하는 것이 중요하다고 생각한다.