이슈 컨벤션
## 🔨 설명 작업할 내용에 대해 상세하게 설명해주세요. ## 📑 완료 조건 어디까지 개발할 것인지 목표에 대해 설명해주세요.
template에 맞게 issue를 작성해주세요. 기존에 만들어둔 template을 사용하면 됩니다.😀
브랜치 이름 컨벤션
작업 단위마다 이슈를 생성하고, 브랜치 이름에 작업 설명과 이슈 이름을 남깁니다.
이슈 단위 브랜치
이슈마다 브랜치가 1개 있는 셈입니다.
- branch(브랜치명은 issue 제목)
#이슈번호/feature/이슈 제목 #이슈번호/fix/ #이슈번호/test/ #이슈번호/refactor/ ex. #11/feature/make-home-page(이슈 제목)
issue 만들고, 그 issue에 맞는 번호를 확인한 뒤, 이 번호에 따라 branch 생성.
branch 이름은 다음과 같은 규칙으로 작성해주세요.
merge가 완료되어 작업이 끝났다면 반드시 branch를 삭제해주세요. 삭제하지 않는다면 추후에 같은 이름의 브랜치가 생성되었을 때 충돌이 발생할 수 있습니다. 충돌은 본인이 확인해서 해결 부탁드립니다.
merge가 완료되면 issue도 close 부탁드립니다.
fix, refactor 또한 issue 작성 후, issue 제목에 맞게 브랜치 생성해서 작업 부탁드립니다.
git commit message convention
- commit(유의미한 작업 별로 쪼개서 자주 커밋 부탁드립니다)
[#이슈번호] Feat: commit 내용 ex. [#11] Feat: make-home-page 컴포넌트 구현
해당 이슈와 관련없는 커밋은 하지 않습니다. 관련없는 커밋이 필요하다면 새로운 이슈를 작성하고 브랜치를 변경해주세요. 첫 글자는 대문자로 적어주세요
- Feat : 새로운 기능 추가
- Fix: 버그 수정
- Docs: 문서의 수정
- Style: (코드의 수정 없이) 스타일(style)만 변경
- Refactor: 코드를 리팩토링
- Test: Test 관련한 코드의 추가, 수정 (Storybook 작업 포함)
- Chore: (코드의 수정 없이) 설정을 변경 및 새로운 라이브러리 혹은 패키지 설치
- Modify: 기존 기능의 변경(코드 변경)
- Rename: 디렉토리 구조 변경
- Cleanup: 콘솔 로그 및 주석 삭제, 파일 삭제, 불필요한 함수 삭제, 코드 위치 변경
- Merge: pull 과정 중 현재 commit과 자동병합이 일어날때 필수적으로 적어줘야하는 commit에 적어줌
PR title convention
다음과 같은 형식으로 pr 제목을 작성해주세요.
[#이슈번호] Keyword: 구현 내용 간략히 ex) [#11] Feat: make-home-page 컴포넌트 구현
Merge 전략
과욕은 금물
과욕인가요?아닌가요?
- 작업 브랜치 > dev 브랜치 >
squash
> main
- 작업 브랜치 > main
- 그 외
공부하고 정합시다!
멘토님) main브랜치 하나만 가지고 전략을 세워보는것도 좋아보인다. (trunkbased)
만약에 새로운 시도를 하고싶지 않다면 기존의 편한 방식대로 해도 되고 (그 리소스를 다른 기술에 투자)
당근
main branch 기준으로 alpha beta나간다
전체 flow는 메인에서 나가고
feature branch에서 작업을 진행
- 작업 브랜치 >
squash
> dev 브랜치 >merge
> main
rebase사용여부 → rebase merge는 안하고,
(당근처럼 dev없이 하나의 main브랜치를 두고 있을 때) 내가 feature브랜치 분기를 했는데 다른사람이 main에 merge를 해버린 경우에, 그사람의 작업변경 사항(package.json) 충돌 막기 위해서 사용함 (feature branch rebase후 squash merge)
rebase merge는 거의 안써요 22