main(배포용)
브랜치에 바로 반영하지 않도록 보호할 수 있다.i) Git Flow란?
Git Flow는 협업 시 브랜치들의 효율적 관리를 위한 브랜치 관리 전략 또는 방법론이다. 이를 잘 활용하면 팀원이 늘어났을 경우 생기는 문제들을 효율적으로 관리할 수 있다.
ii) Branch 분류하는 방법
Branch를 분류하는데 정답은 없다. 보통은 팀원들과 프로젝트를 진행하기 전, 정하는 것이 좋다.
브랜치명 | 설명 | 예시 |
---|---|---|
main | 배포용 브랜치 | main |
dev | 통합(개발)용 브랜치 | dev, develop |
feature | 기능 개발 브랜치 | feature/login |
bugfix | 버그 수정 브랜치 | bugfix/nav-bar |
hotfix | 긴급 패치 브랜치 | hotfix/payment |
chore | 문서, 설정파일 변경 브랜치 | chore/update-readme |
docs | 문서 작업 브랜치 | docs/api-guide |
refactor | 리팩토링 브랜치 | refactor/homepage-ui |
프로젝트가 진행될수록 코드 스타일이 제각각이면 유지보수가 어려워지고, 팀원 간 충돌이 생긴다. 그래서 공통된 컨벤션을 정해두고, 최대한 엄격하게 지키는 것이 좋다.
i) commit 컨벤션 정하기
commit 컨벤션 또한 정답은 없다. 아래는 많은 사람들이 사용하는 컨벤션으로, 이것을 참고하여 본인의 팀에게 맞도록 설정하면 된다.
commit type | 설명 |
---|---|
feat | 새로운 기능 추가 (변수, 함수 선언+호출) |
fix | 버그 수정 |
docs | 문서 수정 |
style | 코드 포맷팅, 세미콜론 누락 등 |
refactor | 코드 리팩토링, 성능 개선 (기능 변경 없이 구조 개선) |
test | 테스트 관련 코드(누락된 테스트 추가, 리팩토링 테스트 등) |
chore | 빌드 업무, 패키지 매니저 설정, 기타 자잘한 수정 |
ii) 현업 꿀팁
commit 할 때 이슈번호를 추가하면 PR에 자동으로 관련 issue가 등록된다.
git commit -m "feat: 로그인 기능 개발 #1"
//#1 = issue 번호
팀에서 합의한 룰을 공유하고, 자동화하여 스타일이 강제로 통일되도록 세팅한다.
브랜치명 | 설명 | 예시 |
---|---|---|
main | 배포용 브랜치 | main |
dev | 통합(개발)용 브랜치 | dev |
feature/ | 기능 개발 브랜치 | feature/login |
bugfix/ | 버그 수정 브랜치 | bugfix/nav-bar |
chore/ | 문서, 설정파일 변경 브랜치 | chore/update-readme |
docs/ | 문서 작업 브랜치 | docs/api-guide |
refactor/ | 리팩토링 브랜치 | refactor/homepage-ui |
hotfix/ | 긴급 패치 브랜치 | hotfix/payment |
우리팀의 경우, Prettier와 ESLint 설정을 통일했다. 그리고 기존에 style
을 css 작업으로 사용하던 팀원이 있어서 우리팀 내의 컨벤션에서는 코드 스타일링이 아닌 레이아웃(css) 스타일링으로 수정하여 사용한다.
커밋 타입 | 설명 | 예시 메시지 |
---|---|---|
feat | 새로운 기능 추가 (변수, 함수 선언+호출) | feat: 회원가입 로직 추가 |
fix | 버그 수정 | fix: 로그인 시 비밀번호 검증 오류 해결 |
docs | 문서 수정 | docs: README에 프로젝트 개요 추가 |
style | UI (css 등) 디자인 수정 | style: 버튼 추가 |
refactor | 코드 리팩토링, 성능 개선 (기능 변경 없이 구조 개선) | refactor: 홈 화면 UI 로직 개선 |
test | 테스트 관련 코드(누락된 테스트 추가, 리팩토링 테스트 등) | test: 유닛 테스트 추가 |
chore | 빌드 업무, 패키지 매니저 설정, 기타 자잘한 수정 | chore: package.json 버전 업그레이드 |
add | 없던 파일을 생성함, 초기 세팅 (기능제외 rafce) | add: ~컴포넌트 생성 |