소규모 팀이라는 점과, 수시로 서비스가 업데이트 된다는 특징을 고려하여 Github-Flow 흐름을 참고하여 진행합니다.
작업 흐름
이슈 생성
Github 레포지터리의 Issues 탭에 들어가서 'New issue' 버튼을 통해 새로운 이슈를 생성합니다.
제목과 본문 내용을 적고 Labels에 이 이슈에 해당하는 태그를 지정해줍니다. 예를 들어서 새로운 기능을 추가한다면 'feature'를 선택해야합니다.
브랜치 생성
개발을 위해 새로운 브랜치를 생성합니다.
이때 브랜치는 master 브랜치와 feature 브랜치 두 개로 구분합니다.
master: 항상 최신 상태를 유지해야합니다. 배포될 준비가 마쳐진 브랜치입니다.
feature: 새로운 feature 브랜치는 항상 master에서 생성합니다. 기능 개발이 진행되는 브랜치입니다.
feature 브랜치를 생성할 때는 feature/이슈번호과 같은 네이밍 규칙을 따릅니다. ex) $ git checkout -b feature/12
개발 진행 : commit & push
개발을 진행하면서 원격 브랜치로 자주 push하여 본인의 작업사항을 수시로 알립니다.
커밋 메시지는 type: message 형식으로 적고 본문, 꼬리말은 필요에 따라 작성합니다.
추가적으로 이 커밋이 속할 이슈 번호를 커밋 메시지 뒤에 적어줍니다. ex) ✨feat: 검색 기능 추가 #1
type
설명
✨feat
새로운 기능 추가
🐛fix
버그 수정
📝docs
문서 수정
💄style
코드 포맷팅
♻️refactor
코드 리팩토링
✅test
테스트 코드 추가/수정
🔥remove
코드 파일 삭제
📝chore
패키지 매니저, 빌드 업무 수정
Pull Request 생성
master 브랜치로 merge 준비가 마쳐졌을 경우나 피드백이나 도움이 필요한 경우 pull request를 생성합니다.
pull request는 해당 github 레포지터리에서 생성할 수 있습니다.
이때 pull request를 통해 master 브랜치에 합쳐지기 전에 코드 리뷰, 토의 및 테스트가 이루어집니다.
Merge
master 브랜치는 최신 브랜치로 가정되기 때문에 머지된 후에는 즉시 배포됩니다.
브랜치 전략 및 워크플로우
작업 흐름
feature/이슈번호
과 같은 네이밍 규칙을 따릅니다. ex)$ git checkout -b feature/12
type: message
형식으로 적고 본문, 꼬리말은 필요에 따라 작성합니다. 추가적으로 이 커밋이 속할 이슈 번호를 커밋 메시지 뒤에 적어줍니다. ex)✨feat: 검색 기능 추가 #1
Pull Request 생성 master 브랜치로 merge 준비가 마쳐졌을 경우나 피드백이나 도움이 필요한 경우 pull request를 생성합니다. pull request는 해당 github 레포지터리에서 생성할 수 있습니다. 이때 pull request를 통해 master 브랜치에 합쳐지기 전에 코드 리뷰, 토의 및 테스트가 이루어집니다.
Merge master 브랜치는 최신 브랜치로 가정되기 때문에 머지된 후에는 즉시 배포됩니다.
📎 참고자료