나의보물들/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,
},