Pull Request 흐름
3. 코드 예제
예제 1: 브랜치 올리기와 PR 템플릿 — 01_pull_request.sh 발췌
# .github/PULL_REQUEST_TEMPLATE.md 추가 (내용은 2.5 참고)
git add .github/PULL_REQUEST_TEMPLATE.md
git commit -m "커밋2: PR 템플릿 추가"
git push -u origin main
git switch -c feat/login
git add Login.java
git commit -m "feat: 로그인 폼 추가"
git add Login.java
git commit -m "feat: 로그인 입력 검증 추가"
git log --oneline main..feat/login
git push -u origin feat/login
git branch -vv6637155 feat: 로그인 입력 검증 추가
b166ffb feat: 로그인 폼 추가
branch 'feat/login' set up to track 'origin/feat/login'.
To WORK/origin.git
* [new branch] feat/login -> feat/login
* feat/login 6637155 [origin/feat/login] feat: 로그인 입력 검증 추가
main 5b87c80 [origin/main] 커밋2: PR 템플릿 추가switch -c 로 만든 브랜치에 커밋 두 개를 쌓고 push -u 로 올렸습니다. branch -vv 의 [origin/feat/login] 표시가 추적이 설정됐다는 뜻입니다.
예제 2: 로컬에서 PR 미리 보기 — 01_pull_request.sh 발췌
git log --oneline origin/main..feat/login
git diff --stat origin/main...feat/login
git request-pull origin/main "$ORIGIN" feat/login6637155 feat: 로그인 입력 검증 추가
b166ffb feat: 로그인 폼 추가
Login.java | 7 +++++++
1 file changed, 7 insertions(+)
The following changes since commit 5b87c808a64bd226ee993d053a2f5414a3438afa:
커밋2: PR 템플릿 추가 (2026-01-05 09:01:00 +0900)log·diff 결과가 PR 화면의 Commits·Files changed 탭과 같습니다. request-pull 은 GitHub 없이 이메일 등으로 리뷰를 요청할 때 쓰는 오래된 방법으로, 뒤에는 커밋 범위와 shortlog·diffstat 이 이어집니다.
예제 3: 관리자 확인과 리뷰 반영 — 01_pull_request.sh 발췌
# 관리자 clone 에서
git fetch origin feat/login
git log --oneline main..origin/feat/login
git diff --stat main...origin/feat/login
# 개발자가 리뷰 지적을 반영
git add Login.java
git commit -m "fix: 리뷰 반영 - 공백 처리 추가"
git push origin feat/login6637155 feat: 로그인 입력 검증 추가
b166ffb feat: 로그인 폼 추가
Login.java | 7 +++++++
1 file changed, 7 insertions(+)
To WORK/origin.git
6637155..d7ff95e feat/login -> feat/login
d7ff95e fix: 리뷰 반영 - 공백 처리 추가
6637155 feat: 로그인 입력 검증 추가
b166ffb feat: 로그인 폼 추가관리자는 자신의 clone 에서 fetch 만으로 PR 내용을 그대로 확인합니다. 반영 커밋을 push 하면 같은 브랜치이므로 PR 은 자동으로 갱신됩니다.
예제 4: 병합과 정리 — 01_pull_request.sh 발췌
git fetch origin feat/login
git switch main
git merge --no-ff -m "Merge pull request #1 from feat/login: 로그인 폼 추가" origin/feat/login
git push origin main
git log --oneline --graph -5
git push origin --delete feat/login
git branch -d feat/login
git fetch --pruneTo WORK/origin.git
5b87c80..6992078 main -> main
* 6992078 Merge pull request #1 from feat/login: 로그인 폼 추가
|\
| * d7ff95e fix: 리뷰 반영 - 공백 처리 추가
| * 6637155 feat: 로그인 입력 검증 추가
| * b166ffb feat: 로그인 폼 추가
|/
* 5b87c80 커밋2: PR 템플릿 추가
To WORK/origin.git
- [deleted] feat/login
Deleted branch feat/login (was d7ff95e).
* main 6992078 [origin/main] Merge pull request #1 from feat/login: 로그인 폼 추가병합 뒤 push --delete 로 원격 브랜치를, branch -d 로 로컬 브랜치를 지웠습니다. fetch --prune 이후 branch -vv 에는 더 이상 feat/login 이 보이지 않습니다.