PR 생성하기

한 줄 요약

GitHub에서 Pull Request를 생성하는 방법

선행 지식

사전 준비

PR을 생성하려면 먼저:

  1. 브랜치에서 작업 완료
  2. 원격 저장소에 push
# 1. 기능 브랜치에서 작업
git switch -c feature/login
 
# 2. 작업 및 커밋
git add .
git commit -m "feat: 로그인 기능 추가"
 
# 3. 원격에 push
git push -u origin feature/login

GitHub에서 PR 생성

방법 1: push 후 안내 배너

push하면 GitHub에 노란 배너가 표시됩니다:

┌─────────────────────────────────────────────────────────────────┐
│ 🟡 feature/login had recent pushes less than a minute ago       │
│                                       [Compare & pull request]  │
└─────────────────────────────────────────────────────────────────┘

“Compare & pull request” 버튼을 클릭하세요.

방법 2: Pull requests 탭

  1. 저장소의 “Pull requests” 탭 클릭
  2. “New pull request” 버튼 클릭
  3. base(병합 대상)와 compare(내 브랜치) 선택
base: main  ←  compare: feature/login

PR 작성 화면

┌─────────────────────────────────────────────────────────────────┐
│ Open a pull request                                             │
│                                                                  │
│ base: main  ←  compare: feature/login                           │
│ ✅ Able to merge                                                │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│ Title: [feat: 로그인 기능 추가                              ]   │
│                                                                  │
│ ┌───────────────────────────────────────────────────────────┐   │
│ │ ## 변경 사항                                               │   │
│ │ - JWT 기반 로그인 구현                                     │   │
│ │ - 로그인 폼 UI 추가                                        │   │
│ │                                                            │   │
│ │ ## 관련 이슈                                               │   │
│ │ Closes #42                                                 │   │
│ │                                                            │   │
│ │ ## 테스트                                                  │   │
│ │ - [x] 로그인 성공 케이스                                   │   │
│ │ - [x] 로그인 실패 케이스                                   │   │
│ └───────────────────────────────────────────────────────────┘   │
│                                                                  │
│ Reviewers: @teammate                                            │
│ Assignees: @me                                                  │
│ Labels: enhancement                                             │
│                                                                  │
│                                    [Create pull request ▼]      │
└─────────────────────────────────────────────────────────────────┘

PR 제목 작성

형식

타입: 간단한 설명

예시:
feat: 로그인 기능 추가
fix: 이메일 검증 버그 수정
docs: API 문서 업데이트
refactor: 인증 로직 분리

좋은 예시 vs 나쁜 예시

✅ feat: 소셜 로그인 (Google, Kakao) 추가
✅ fix: 로그인 시 비밀번호 특수문자 오류 수정

❌ 수정
❌ 로그인
❌ Update app.js

PR 본문 템플릿

기본 템플릿

## 변경 사항
<!-- 무엇을 변경했는지 -->
- 
 
## 변경 이유
<!-- 왜 변경했는지 -->
- 
 
## 관련 이슈
<!-- 관련된 이슈 번호 -->
Closes #이슈번호
 
## 테스트
<!-- 어떻게 테스트했는지 -->
- [ ] 테스트 항목 1
- [ ] 테스트 항목 2
 
## 스크린샷 (UI 변경시)
<!-- 변경된 UI 스크린샷 -->

예시

## 변경 사항
- JWT 기반 로그인 API 구현
- 로그인 폼 컴포넌트 추가
- 인증 미들웨어 작성
 
## 변경 이유
사용자 인증 기능이 필요하여 JWT 기반 로그인을 구현했습니다.
 
## 관련 이슈
Closes #42
Relates to #38
 
## 테스트
- [x] 올바른 자격증명으로 로그인 성공
- [x] 잘못된 비밀번호로 로그인 실패
- [x] 토큰 만료 시 재인증 요청
 
## 스크린샷
![로그인 폼](https://...)

추가 설정

Reviewers (리뷰어)

코드를 검토할 팀원을 지정합니다.

Assignees (담당자)

이 PR의 담당자를 지정합니다.

Labels (라벨)

bug        - 버그 수정
enhancement - 새 기능
documentation - 문서
help wanted - 도움 필요

Projects / Milestone

프로젝트 보드나 마일스톤에 연결합니다.

Draft PR

아직 작업 중이지만 피드백을 받고 싶을 때:

  1. “Create pull request” 옆 화살표 클릭
  2. “Create draft pull request” 선택
[Create pull request ▼]
  └── Create draft pull request

작업 완료 후 “Ready for review” 버튼으로 전환합니다.

PR 생성 후

추가 커밋

PR 생성 후에도 같은 브랜치에 push하면 자동 반영됩니다:

# 리뷰 피드백 반영
git add .
git commit -m "fix: 리뷰 반영 - 에러 처리 추가"
git push

충돌 발생 시

# 최신 main 가져와서 병합
git fetch origin
git merge origin/main
 
# 충돌 해결 후
git add .
git commit
git push

충돌 해결하기 참고

자주 하는 실수

잘못된 base 브랜치

문제: develop에 병합해야 하는데 main으로 PR 생성

해결: PR 생성 전 base 브랜치 확인

base: develop  ←  compare: feature/login

PR 설명 없음

문제: 리뷰어가 맥락을 모름

해결: 무엇을/왜/어떻게 변경했는지 설명

관련 문서

더 알아보기