나의보물들/Git | GitHub
[Github] Git Pull Request Convention
솔솔하네
2024. 11. 10. 20:24
반응형
🍀 Git Pull Request Convention이란?
Pull Request(PR)를 작성할 때 일관성과 가독성을 높이기 위해 설정하는 규칙. 팀이나 프로젝트에서 PR의 제목, 설명, 구조를 통일하여 효율적으로 코드 리뷰를 진행하고 변경 사항을 이해하기 쉽게 만드는 것이 목적.
🍀 Git Pull Request Convention 작성법
1. PR 제목 규칙
- 형식: PR 제목은 변경 사항을 명확히 설명하는 짧고 간결한 문장으로 작성.
- 예시 형식:
- feat: 새로운 기능 추가
- fix: 버그 수정
- docs: 문서 추가/수정
- refactor: 코드 리팩토링
- test: 테스트 코드 추가/수정
- chore: 기타 변경 사항 (예: 빌드 설정)
2. PR 설명 규칙
- PR 본문에는 변경 사항의 배경, 목적, 주요 변경 내용 등을 상세히 작성.
- 커밋 메시지처럼 간결한 요약보다는 코드 리뷰어가 쉽게 이해할 수 있도록 문서화하듯 작성하는 것이 좋음.
3. 체크리스트 추가
- PR이 완전히 준비되었는지 확인하기 위해 체크리스트를 추가.
4. 연관 이슈 링크
- 관련된 이슈 번호를 언급하여 PR이 해결하는 이슈와의 연결성을 유지
🍀 Git Pull Request Convention Template 예시
## 🔵 What is this PR?
사용자 프로필 페이지 축가
## 🟡 Changes?
- 사용자 프로필 페이지 라우팅 구현
- 프로필 정보를 보여주는 프로필 카드 컴포넌트 구현
- 프로필 수정 기능 구현
## 📷 Screenshot?
<img src="{이미지 경로 지정}" width="450px" height="300px" title="px(픽셀) 크기 설정" alt=""></img><br/>
## ✔️Test Checklist?
- [ ] 체크박스 해제
- [x] 체크박스 선택
## ⚪️ Related Issue
#123
🍀 Git Pull Request Convention Template 저장해서 작성해보기
1. 템플릿을 추가하고자 하는 GitHub 저장소로 이동.
2. 저장소에서 .github 폴더를 생성(이미 존재하는 경우 생략).
3. .github 폴더 내에 PULL_REQUEST_TEMPLATE.md 파일을 생성.
// 2, 3 과정을 한번에 명령어로 처리
mkdir -p .github/PULL_REQUEST_TEMPLATE
touch .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
4. 아래와 같은 템플릿 내용을 파일에 작성.
5. 원격 저장소로 Push.
git add .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
git commit -m "Git PR Convention 양식 추가"
git push origin main(defalutt 브랜치에)
🍀 Git PR Label이란?
GitHub에서 Pull Request(PR)를 쉽게 분류하고 관리하기 위해 사용하는 시각적 태그. PR에 라벨을 붙이면 PR의 종류, 상태, 우선순위 등을 한눈에 파악할 수 있어 협업과 코드 리뷰가 수월해짐.
🍀 Git PR Label Template 적용 방법
1. 프로젝트 리포지토리에 [Issues] or [Pull requests]에 들어간 후 [Lables]클릭 후 Edit로 수정 (양식은 아래 참조)
{
labelName : 🐞 BugFix,
description: Something isn't working,
color #d73a4a,
},
{
labelName : 🔹 Update,
description: 일반 코드 수정,
color #d73a4a,
},
{
labelName 📃 Docs: ,
description: 문서 작성 및 수정 (README.md 등),
color #1D76DB,
},
{
labelName : ✨ Feature,
description: 기능 개발,
color #a2eeef,
},
{
labelName : 💡 Perf,
description: 성능개선,
color #5DFB44,
},
{
labelName : 🙋♂️ Question,
description: Further information is requested,
color #9ED447,
},
{
labelName : 🔨 Refactor,
description: 코드 리팩토링,
color #f29a4e,
},
{
labelName : ⚙ Setting,
description: 개발 환경 세팅,
color #e3dede,
},
{
labelName : 🎨 Style,
description: 마크업(HTML) & 스타일링(CSS),
color #FEF2C0,
},
{
labelName : ✅ Test,
description: test 관련(storybook, jest...),
color #ccffc4,
},