feat: Cursor 규칙 문서 추가 및 불필요한 파일 삭제
This commit is contained in:
195
commands/git/branch.md
Normal file
195
commands/git/branch.md
Normal file
@@ -0,0 +1,195 @@
|
||||
---
|
||||
description: '브랜치 생성, 전환, 삭제 등 브랜치 관리 작업을 수행합니다'
|
||||
allowed-tools:
|
||||
[
|
||||
'Bash(git branch:*)',
|
||||
'Bash(git checkout:*)',
|
||||
'Bash(git switch:*)',
|
||||
'Bash(git status:*)',
|
||||
'Bash(git stash:*)',
|
||||
'Bash(git log:*)',
|
||||
'Bash(git fetch:*)',
|
||||
]
|
||||
---
|
||||
|
||||
# Claude 명령어: Branch
|
||||
|
||||
브랜치 생성, 전환, 삭제 등 Git 브랜치 관리를 위한 종합 도구입니다.
|
||||
|
||||
## 사용법
|
||||
|
||||
```
|
||||
/git:branch [브랜치명] # 새 브랜치 생성 및 전환
|
||||
/git:branch # 대화형 브랜치 관리 메뉴
|
||||
```
|
||||
|
||||
## 주요 기능
|
||||
|
||||
### 1. 브랜치 생성 및 전환
|
||||
|
||||
- 새 브랜치 생성과 동시에 전환
|
||||
- 브랜치명 규칙 자동 검증
|
||||
- 프리픽스 자동 제안 (feature/, fix/, hotfix/, docs/, chore/)
|
||||
|
||||
### 2. 안전한 브랜치 전환
|
||||
|
||||
- 전환 전 uncommitted 변경사항 자동 감지
|
||||
- 필요시 자동 stash 생성
|
||||
- 원격 브랜치 추적 설정
|
||||
|
||||
### 3. 브랜치 관리
|
||||
|
||||
- 현재 브랜치 상태 및 목록 확인
|
||||
- 로컬/원격 브랜치 동기화
|
||||
- 안전한 브랜치 삭제 (병합 여부 확인)
|
||||
|
||||
## 프로세스
|
||||
|
||||
### 브랜치 생성 플로우
|
||||
|
||||
1. 현재 Git 상태 확인
|
||||
2. uncommitted 변경사항 처리 (stash 또는 커밋 권장)
|
||||
3. 브랜치명 검증 및 규칙 적용
|
||||
4. 최신 main/develop 브랜치에서 분기
|
||||
5. 새 브랜치 생성 및 전환
|
||||
|
||||
### 브랜치 전환 플로우
|
||||
|
||||
1. 현재 작업 상태 확인
|
||||
2. 필요시 변경사항 stash
|
||||
3. 대상 브랜치로 전환
|
||||
4. 원격 추적 브랜치 설정
|
||||
|
||||
### 브랜치 삭제 플로우
|
||||
|
||||
1. 병합 상태 확인
|
||||
2. 원격 브랜치 존재 여부 확인
|
||||
3. 안전 확인 후 삭제
|
||||
|
||||
## 브랜치 네이밍 규칙
|
||||
|
||||
### 권장 프리픽스
|
||||
|
||||
```
|
||||
feature/ - 새로운 기능 개발
|
||||
fix/ - 버그 수정
|
||||
hotfix/ - 긴급 수정
|
||||
docs/ - 문서화 작업
|
||||
chore/ - 빌드, 설정 등 유지보수
|
||||
refactor/ - 코드 리팩토링
|
||||
test/ - 테스트 코드 작업
|
||||
```
|
||||
|
||||
### 네이밍 패턴
|
||||
|
||||
```
|
||||
✅ 좋은 예시:
|
||||
feature/user-authentication
|
||||
fix/login-validation-error
|
||||
hotfix/security-patch
|
||||
docs/api-documentation
|
||||
|
||||
❌ 피해야 할 예시:
|
||||
feature-user-auth # 슬래시 사용
|
||||
FEATURE/USER-AUTH # 대문자 사용
|
||||
feature/user auth # 공백 사용
|
||||
temp # 불명확한 이름
|
||||
```
|
||||
|
||||
## 대화형 메뉴 옵션
|
||||
|
||||
브랜치명 없이 실행 시 표시되는 메뉴:
|
||||
|
||||
```
|
||||
1. 📝 새 브랜치 생성
|
||||
2. 🔄 브랜치 전환
|
||||
3. 📋 브랜치 목록 보기
|
||||
4. 🗑️ 브랜치 삭제
|
||||
5. 🔄 원격 브랜치 동기화
|
||||
6. 📊 브랜치 상태 확인
|
||||
```
|
||||
|
||||
## 안전 기능
|
||||
|
||||
### 자동 백업
|
||||
|
||||
- 브랜치 전환 전 자동 stash 생성
|
||||
- Stash 메시지에 이전 브랜치명 포함
|
||||
- 작업 손실 방지를 위한 확인 프롬프트
|
||||
|
||||
### 충돌 방지
|
||||
|
||||
- 원격 브랜치와의 동기화 상태 확인
|
||||
- 병합되지 않은 브랜치 삭제 시 경고
|
||||
- 현재 브랜치에서의 미완료 작업 감지
|
||||
|
||||
### 복구 지원
|
||||
|
||||
- 실수로 삭제한 브랜치 복구 안내
|
||||
- Stash 목록 및 복구 방법 제시
|
||||
- 브랜치 히스토리 추적
|
||||
|
||||
## 사용 예시
|
||||
|
||||
### 새 기능 브랜치 생성
|
||||
|
||||
```
|
||||
/git:branch feature/user-profile
|
||||
```
|
||||
|
||||
### 버그 수정 브랜치 생성
|
||||
|
||||
```
|
||||
/git:branch fix/authentication-error
|
||||
```
|
||||
|
||||
### 대화형 모드 실행
|
||||
|
||||
```
|
||||
/git:branch
|
||||
```
|
||||
|
||||
## 통합 기능
|
||||
|
||||
### 다른 Git 커맨드와의 연계
|
||||
|
||||
- `/git:commit`과 연동한 커밋 워크플로우
|
||||
- `/git:merge`와 연동한 병합 워크플로우
|
||||
- `/git:pr`과 연동한 PR 생성 워크플로우
|
||||
|
||||
### GitHub CLI 통합
|
||||
|
||||
- 원격 브랜치 자동 설정
|
||||
- Issue 번호 기반 브랜치 생성
|
||||
- PR 생성 시 브랜치 정보 자동 연결
|
||||
|
||||
## 고급 옵션
|
||||
|
||||
### 브랜치 생성 옵션
|
||||
|
||||
- `--from-issue` : GitHub Issue에서 브랜치 생성
|
||||
- `--track` : 원격 브랜치 추적 설정
|
||||
- `--no-stash` : 자동 stash 비활성화
|
||||
|
||||
### 정리 옵션
|
||||
|
||||
- `--cleanup` : 병합된 브랜치 일괄 삭제
|
||||
- `--prune` : 원격에서 삭제된 브랜치 정리
|
||||
- `--dry-run` : 삭제 예상 결과 미리보기
|
||||
|
||||
## 문제 해결
|
||||
|
||||
### 자주 발생하는 문제
|
||||
|
||||
1. **브랜치 전환 실패** → uncommitted 변경사항 처리
|
||||
2. **브랜치 삭제 거부** → 병합 상태 확인 필요
|
||||
3. **원격 브랜치 추적 오류** → fetch 후 재시도
|
||||
4. **브랜치명 규칙 위반** → 자동 제안 받아 수정
|
||||
|
||||
### 복구 방법
|
||||
|
||||
- 잘못 삭제한 브랜치: `git reflog`로 복구
|
||||
- 손실된 변경사항: `git stash list`에서 복구
|
||||
- 꼬인 브랜치 상태: `git reset`으로 초기화
|
||||
|
||||
이 커맨드는 Git 브랜치 관리의 모든 측면을 안전하고 효율적으로 처리합니다.
|
||||
64
commands/git/commit.md
Normal file
64
commands/git/commit.md
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
description: '이모지와 컨벤셔널 커밋 메시지로 잘 포맷된 커밋을 생성합니다'
|
||||
allowed-tools:
|
||||
[
|
||||
'Bash(git add:*)',
|
||||
'Bash(git status:*)',
|
||||
'Bash(git commit:*)',
|
||||
'Bash(git diff:*)',
|
||||
'Bash(git log:*)',
|
||||
]
|
||||
---
|
||||
|
||||
# Claude 명령어: Commit
|
||||
|
||||
이모지와 컨벤셔널 커밋 메시지로 잘 포맷된 커밋을 생성합니다.
|
||||
|
||||
## 사용법
|
||||
|
||||
```
|
||||
/commit
|
||||
```
|
||||
|
||||
## 프로세스
|
||||
|
||||
1. 스테이지된 파일 확인, 스테이지된 파일이 있으면 해당 파일만 커밋
|
||||
2. 여러 논리적 변경사항에 대한 diff 분석
|
||||
3. 필요시 분할 제안
|
||||
4. 이모지 컨벤셔널 포맷으로 커밋 생성
|
||||
|
||||
## 커밋 포맷
|
||||
|
||||
`<이모지> <타입>: <설명>`
|
||||
|
||||
**타입:**
|
||||
|
||||
- `feat`: 새로운 기능
|
||||
- `fix`: 버그 수정
|
||||
- `docs`: 문서화
|
||||
- `style`: 포맷팅
|
||||
- `refactor`: 코드 리팩토링
|
||||
- `perf`: 성능 개선
|
||||
- `test`: 테스트
|
||||
- `chore`: 빌드/도구
|
||||
|
||||
**규칙:**
|
||||
|
||||
- 명령형 어조 ("추가" not "추가됨")
|
||||
- 첫 줄 72자 미만
|
||||
- 원자적 커밋 (단일 목적)
|
||||
- 관련 없는 변경사항 분할
|
||||
|
||||
## 이모지 맵
|
||||
|
||||
✨ feat | 🐛 fix | 📝 docs | 💄 style | ♻️ refactor | ⚡ perf | ✅ test | 🔧 chore | 🚀 ci | 🚨 warnings | 🔒️ security | 🚚 move | 🏗️ architecture | ➕ add-dep | ➖ remove-dep | 🌱 seed | 🧑💻 dx | 🏷️ types | 👔 business | 🚸 ux | 🩹 minor-fix | 🥅 errors | 🔥 remove | 🎨 structure | 🚑️ hotfix | 🎉 init | 🔖 release | 🚧 wip | 💚 ci-fix | 📌 pin-deps | 👷 ci-build | 📈 analytics | ✏️ typos | ⏪️ revert | 📄 license | 💥 breaking | 🍱 assets | ♿️ accessibility | 💡 comments | 🗃️ db | 🔊 logs | 🔇 remove-logs | 🙈 gitignore | 📸 snapshots | ⚗️ experiment | 🚩 flags | 💫 animations | ⚰️ dead-code | 🦺 validation | ✈️ offline
|
||||
|
||||
## 분할 기준
|
||||
|
||||
다른 관심사 | 혼합된 타입 | 파일 패턴 | 큰 변경사항
|
||||
|
||||
## 참고사항
|
||||
|
||||
- 스테이지된 파일이 있으면 해당 파일만 커밋
|
||||
- 분할 제안을 위한 diff 분석
|
||||
- **커밋에 Claude 서명 절대 추가하지 않음**
|
||||
315
commands/git/merge.md
Normal file
315
commands/git/merge.md
Normal file
@@ -0,0 +1,315 @@
|
||||
---
|
||||
description: '브랜치를 안전하게 병합하고 충돌을 해결합니다'
|
||||
allowed-tools:
|
||||
[
|
||||
'Bash(git merge:*)',
|
||||
'Bash(git status:*)',
|
||||
'Bash(git diff:*)',
|
||||
'Bash(git log:*)',
|
||||
'Bash(git branch:*)',
|
||||
'Bash(git fetch:*)',
|
||||
'Bash(git pull:*)',
|
||||
'Bash(git reset:*)',
|
||||
'Bash(git checkout:*)',
|
||||
'Bash(git stash:*)',
|
||||
]
|
||||
---
|
||||
|
||||
# Claude 명령어: Merge
|
||||
|
||||
브랜치를 안전하게 병합하고 충돌을 자동으로 해결하는 Git 병합 전문 도구입니다.
|
||||
|
||||
## 사용법
|
||||
|
||||
```
|
||||
/git:merge [브랜치명] # 지정된 브랜치를 현재 브랜치에 병합
|
||||
/git:merge # 대화형 병합 메뉴
|
||||
```
|
||||
|
||||
## 주요 기능
|
||||
|
||||
### 1. 안전한 병합 프로세스
|
||||
|
||||
- 병합 전 상태 점검 (uncommitted changes, conflicts)
|
||||
- 자동 백업 및 복구 지점 생성
|
||||
- 병합 충돌 자동 감지 및 단계별 해결 가이드
|
||||
|
||||
### 2. 다양한 병합 전략
|
||||
|
||||
- **Fast-forward**: 선형 히스토리 유지
|
||||
- **No-fast-forward**: 병합 커밋 생성하여 브랜치 히스토리 보존
|
||||
- **Squash**: 여러 커밋을 하나로 압축하여 병합
|
||||
|
||||
### 3. 지능적 충돌 해결
|
||||
|
||||
- 충돌 파일 자동 식별
|
||||
- 충돌 내용 시각적 표시
|
||||
- 단계별 해결 가이드 제공
|
||||
- 해결 후 자동 검증
|
||||
|
||||
## 프로세스
|
||||
|
||||
### 병합 전 검사 단계
|
||||
|
||||
1. **현재 브랜치 상태 확인**
|
||||
- Uncommitted 변경사항 확인
|
||||
- Working directory 정리 상태 점검
|
||||
|
||||
2. **대상 브랜치 검증**
|
||||
- 브랜치 존재 여부 확인
|
||||
- 원격 브랜치 동기화 상태 점검
|
||||
- 브랜치 간 분기점 분석
|
||||
|
||||
3. **병합 가능성 사전 점검**
|
||||
- Potential conflicts 미리 감지
|
||||
- 병합 후 예상 결과 미리보기
|
||||
|
||||
### 병합 실행 단계
|
||||
|
||||
1. **자동 백업 생성**
|
||||
- 현재 상태를 stash로 백업
|
||||
- 병합 전 커밋 SHA 기록
|
||||
|
||||
2. **병합 전략 선택**
|
||||
- Fast-forward 가능 여부 확인
|
||||
- 프로젝트 정책에 따른 전략 결정
|
||||
|
||||
3. **병합 수행**
|
||||
- 선택된 전략으로 병합 실행
|
||||
- 실시간 진행 상황 모니터링
|
||||
|
||||
### 충돌 해결 단계
|
||||
|
||||
1. **충돌 파일 식별**
|
||||
- 충돌이 발생한 모든 파일 나열
|
||||
- 충돌 유형별 분류 (content, delete/modify 등)
|
||||
|
||||
2. **대화형 해결 프로세스**
|
||||
- 파일별 충돌 내용 표시
|
||||
- 해결 옵션 제시 (ours/theirs/manual)
|
||||
- 실시간 해결 상태 추적
|
||||
|
||||
3. **해결 검증**
|
||||
- 모든 충돌 해결 확인
|
||||
- 문법 오류 및 빌드 테스트
|
||||
- 최종 커밋 생성
|
||||
|
||||
## 병합 전략
|
||||
|
||||
### Fast-Forward 병합
|
||||
|
||||
```
|
||||
Before: A---B---C (main)
|
||||
\
|
||||
D---E (feature)
|
||||
|
||||
After: A---B---C---D---E (main)
|
||||
```
|
||||
|
||||
- 선형 히스토리 유지
|
||||
- 브랜치 흔적 없음
|
||||
- 간단한 변경사항에 적합
|
||||
|
||||
### No-Fast-Forward 병합
|
||||
|
||||
```
|
||||
Before: A---B---C (main)
|
||||
\
|
||||
D---E (feature)
|
||||
|
||||
After: A---B---C-------F (main)
|
||||
\ /
|
||||
D---E----
|
||||
```
|
||||
|
||||
- 병합 커밋으로 브랜치 히스토리 보존
|
||||
- 기능 단위 추적 가능
|
||||
- 협업 프로젝트에 권장
|
||||
|
||||
### Squash 병합
|
||||
|
||||
```
|
||||
Before: A---B---C (main)
|
||||
\
|
||||
D---E---F (feature)
|
||||
|
||||
After: A---B---C---G (main)
|
||||
(D+E+F를 압축한 단일 커밋)
|
||||
```
|
||||
|
||||
- 여러 커밋을 하나로 통합
|
||||
- 깔끔한 히스토리 유지
|
||||
- 실험적 커밋 정리에 유용
|
||||
|
||||
## 대화형 메뉴
|
||||
|
||||
```
|
||||
🔀 Git Merge 메뉴
|
||||
|
||||
1. 📥 브랜치 병합 (Fast-forward)
|
||||
2. 🔗 브랜치 병합 (No-fast-forward)
|
||||
3. 📦 브랜치 병합 (Squash)
|
||||
4. 🔍 병합 가능성 사전 확인
|
||||
5. ⚡ 진행 중인 병합 완료
|
||||
6. ❌ 병합 중단 및 되돌리기
|
||||
7. 📊 병합 히스토리 확인
|
||||
```
|
||||
|
||||
## 충돌 해결 가이드
|
||||
|
||||
### 충돌 유형별 해결법
|
||||
|
||||
#### 1. 내용 충돌 (Content Conflict)
|
||||
|
||||
```
|
||||
병합할 브랜치의 내용
|
||||
```
|
||||
|
||||
**해결 옵션:**
|
||||
|
||||
- `ours`: 현재 브랜치 내용 유지
|
||||
- `theirs`: 병합할 브랜치 내용 채택
|
||||
- `manual`: 수동으로 편집
|
||||
|
||||
#### 2. 파일 삭제/수정 충돌
|
||||
|
||||
```
|
||||
deleted by us: src/component.js
|
||||
modified by them: src/component.js
|
||||
```
|
||||
|
||||
**해결 옵션:**
|
||||
|
||||
- 파일 삭제 유지
|
||||
- 수정된 내용 채택
|
||||
- 새로운 버전으로 재작성
|
||||
|
||||
#### 3. 이름 변경 충돌
|
||||
|
||||
```
|
||||
renamed: src/old-name.js -> src/new-name1.js
|
||||
renamed: src/old-name.js -> src/new-name2.js
|
||||
```
|
||||
|
||||
**해결 과정:**
|
||||
|
||||
1. 적절한 파일명 결정
|
||||
2. 불필요한 복사본 제거
|
||||
3. 코드 참조 업데이트
|
||||
|
||||
### 충돌 해결 도구
|
||||
|
||||
#### 자동 해결 도구
|
||||
|
||||
- **semantic merge**: 의미론적 분석으로 자동 병합
|
||||
- **whitespace normalization**: 공백 차이 자동 정규화
|
||||
- **import sorting**: import 문 자동 정렬
|
||||
|
||||
#### 수동 해결 지원
|
||||
|
||||
- 충돌 구간 하이라이팅
|
||||
- 원본 파일 내용 비교
|
||||
- 단계별 해결 체크리스트
|
||||
|
||||
## 병합 후 정리
|
||||
|
||||
### 자동 정리 작업
|
||||
|
||||
1. **브랜치 정리**
|
||||
- 병합된 브랜치 삭제 옵션
|
||||
- 원격 브랜치 정리
|
||||
|
||||
2. **히스토리 정리**
|
||||
- 불필요한 stash 정리
|
||||
- 임시 파일 제거
|
||||
|
||||
3. **상태 확인**
|
||||
- 병합 결과 검증
|
||||
- 빌드 상태 확인
|
||||
|
||||
## 안전 기능
|
||||
|
||||
### 병합 취소 및 복구
|
||||
|
||||
```
|
||||
/git:merge --abort # 진행 중인 병합 중단
|
||||
/git:merge --reset # 병합 전 상태로 복구
|
||||
```
|
||||
|
||||
### 백업 및 복구점
|
||||
|
||||
- 병합 전 자동 stash 생성
|
||||
- 커밋 SHA 기반 복구점
|
||||
- 브랜치 상태 스냅샷
|
||||
|
||||
### 안전 검사
|
||||
|
||||
- 중요 브랜치 보호 (main, develop)
|
||||
- 병합 권한 확인
|
||||
- 코드 리뷰 상태 점검
|
||||
|
||||
## 고급 기능
|
||||
|
||||
### 부분 병합
|
||||
|
||||
```
|
||||
/git:merge --pick [커밋SHA] # 특정 커밋만 선택적 병합
|
||||
/git:merge --range [시작]..[끝] # 커밋 범위 지정 병합
|
||||
```
|
||||
|
||||
### 병합 전략 옵션
|
||||
|
||||
```
|
||||
-X ours # 충돌 시 현재 브랜치 우선
|
||||
-X theirs # 충돌 시 병합할 브랜치 우선
|
||||
-X patience # 더 정확한 충돌 감지
|
||||
-X ignore-space-change # 공백 변경 무시
|
||||
```
|
||||
|
||||
### GitHub/PR 통합
|
||||
|
||||
- PR 상태 기반 병합 제어
|
||||
- 리뷰 승인 상태 확인
|
||||
- CI/CD 파이프라인 연동
|
||||
|
||||
## 사용 예시
|
||||
|
||||
### 기본 병합
|
||||
|
||||
```
|
||||
/git:merge feature/user-auth
|
||||
```
|
||||
|
||||
### 병합 전략 지정
|
||||
|
||||
```
|
||||
/git:merge --no-ff feature/user-auth # No-fast-forward
|
||||
/git:merge --squash feature/user-auth # Squash merge
|
||||
```
|
||||
|
||||
### 충돌 해결 모드
|
||||
|
||||
```
|
||||
/git:merge --resolve # 진행 중인 충돌 해결 계속
|
||||
```
|
||||
|
||||
## 문제 해결
|
||||
|
||||
### 자주 발생하는 문제
|
||||
|
||||
1. **병합 충돌이 복잡할 때**
|
||||
- 단계별 해결 가이드 제공
|
||||
- 파일별 개별 해결
|
||||
- 전문가 모드 지원
|
||||
|
||||
2. **병합 후 빌드 실패**
|
||||
- 자동 빌드 테스트
|
||||
- 실패 시 롤백 옵션
|
||||
- 수정 후 재시도
|
||||
|
||||
3. **히스토리가 복잡할 때**
|
||||
- 병합 시각화 도구
|
||||
- 브랜치 관계 다이어그램
|
||||
- 커밋 히스토리 분석
|
||||
|
||||
이 커맨드는 Git 병합의 모든 복잡성을 처리하면서도 안전하고 직관적인 인터페이스를 제공합니다.
|
||||
361
commands/git/pr.md
Normal file
361
commands/git/pr.md
Normal file
@@ -0,0 +1,361 @@
|
||||
---
|
||||
description: 'GitHub Pull Request를 생성하고 관리합니다'
|
||||
allowed-tools:
|
||||
[
|
||||
'Bash(gh pr:*)',
|
||||
'Bash(gh api:*)',
|
||||
'Bash(gh repo:*)',
|
||||
'Bash(git push:*)',
|
||||
'Bash(git status:*)',
|
||||
'Bash(git log:*)',
|
||||
'Bash(git diff:*)',
|
||||
'Bash(git branch:*)',
|
||||
'Bash(git fetch:*)',
|
||||
]
|
||||
---
|
||||
|
||||
# Claude 명령어: Pull Request
|
||||
|
||||
GitHub Pull Request를 자동으로 생성하고 관리하는 통합 도구입니다.
|
||||
|
||||
## 사용법
|
||||
|
||||
```
|
||||
/git:pr # 현재 브랜치로 PR 생성 (대화형)
|
||||
/git:pr "PR 제목" # 제목 지정하여 PR 생성
|
||||
/git:pr --draft # Draft PR 생성
|
||||
/git:pr --ready # Draft PR을 Ready로 전환
|
||||
```
|
||||
|
||||
## 주요 기능
|
||||
|
||||
### 1. 스마트 PR 생성
|
||||
|
||||
- 커밋 히스토리 기반 제목/설명 자동 생성
|
||||
- 변경된 파일 분석으로 PR 유형 자동 분류
|
||||
- 브랜치명에서 작업 유형 추출 (feature, fix, docs 등)
|
||||
|
||||
### 2. 자동 메타데이터 설정
|
||||
|
||||
- 라벨 자동 할당 (feat, fix, docs, breaking-change)
|
||||
- 리뷰어 자동 할당 (팀 규칙 기반)
|
||||
- 마일스톤 및 프로젝트 연결
|
||||
|
||||
### 3. 템플릿 기반 PR 설명
|
||||
|
||||
- 체크리스트 자동 생성
|
||||
- 변경사항 요약
|
||||
- 테스트 계획 포함
|
||||
|
||||
## 프로세스
|
||||
|
||||
### PR 생성 전 점검
|
||||
|
||||
1. **브랜치 상태 확인**
|
||||
- 현재 브랜치가 최신 상태인지 확인
|
||||
- 원격 브랜치 푸시 상태 점검
|
||||
- Uncommitted 변경사항 확인
|
||||
|
||||
2. **변경사항 분석**
|
||||
- 수정된 파일 목록 및 통계
|
||||
- 추가/삭제된 줄 수 계산
|
||||
- 변경 유형 분류 (feature/fix/docs/test)
|
||||
|
||||
3. **PR 요구사항 검증**
|
||||
- 브랜치명 규칙 준수 확인
|
||||
- 커밋 메시지 품질 검사
|
||||
- 필수 파일 변경 여부 확인
|
||||
|
||||
### 자동 PR 내용 생성
|
||||
|
||||
1. **제목 생성 규칙**
|
||||
|
||||
```
|
||||
브랜치 유형별 제목 패턴:
|
||||
feature/user-auth → "✨ feat: 사용자 인증 기능 추가"
|
||||
fix/login-bug → "🐛 fix: 로그인 버그 수정"
|
||||
docs/readme → "📝 docs: README 문서 업데이트"
|
||||
```
|
||||
|
||||
2. **설명 자동 생성**
|
||||
- 커밋 메시지 요약
|
||||
- 주요 변경사항 하이라이트
|
||||
- 영향도 분석
|
||||
|
||||
3. **체크리스트 생성**
|
||||
- 코드 리뷰 체크리스트
|
||||
- 테스트 관련 항목
|
||||
- 문서 업데이트 항목
|
||||
|
||||
### PR 메타데이터 설정
|
||||
|
||||
1. **라벨 자동 할당**
|
||||
|
||||
```
|
||||
변경사항 기반 라벨:
|
||||
- 새 파일 추가 → "feature"
|
||||
- 버그 수정 패턴 → "bug", "fix"
|
||||
- 문서 파일 변경 → "documentation"
|
||||
- 테스트 파일 → "test"
|
||||
- 설정/빌드 파일 → "chore"
|
||||
- Breaking Change → "breaking-change"
|
||||
```
|
||||
|
||||
2. **리뷰어 할당**
|
||||
- CODEOWNERS 파일 기반 자동 할당
|
||||
- 팀 구성원 라운드로빈 할당
|
||||
- 파일별 전문가 할당
|
||||
|
||||
3. **연결 항목**
|
||||
- 관련 Issue 자동 연결
|
||||
- 마일스톤 할당
|
||||
- 프로젝트 보드 추가
|
||||
|
||||
## PR 템플릿
|
||||
|
||||
### 기본 PR 템플릿
|
||||
|
||||
```markdown
|
||||
## 📋 변경사항 요약
|
||||
|
||||
[자동 생성된 변경사항 요약]
|
||||
|
||||
## 🎯 목적 및 배경
|
||||
|
||||
[브랜치명과 커밋 메시지 기반 목적 설명]
|
||||
|
||||
## 🔧 주요 변경내용
|
||||
|
||||
- [ ] [변경사항 1]
|
||||
- [ ] [변경사항 2]
|
||||
- [ ] [변경사항 3]
|
||||
|
||||
## ✅ 체크리스트
|
||||
|
||||
### 코드 품질
|
||||
|
||||
- [ ] 코드가 프로젝트의 스타일 가이드를 따름
|
||||
- [ ] Self-review 완료
|
||||
- [ ] 적절한 주석 추가
|
||||
- [ ] 불필요한 console.log/debug 코드 제거
|
||||
|
||||
### 테스트
|
||||
|
||||
- [ ] 기존 테스트 모두 통과
|
||||
- [ ] 새로운 기능에 대한 테스트 추가
|
||||
- [ ] 엣지 케이스 테스트 포함
|
||||
|
||||
### 문서화
|
||||
|
||||
- [ ] 코드 변경에 따른 문서 업데이트
|
||||
- [ ] README.md 업데이트 (필요시)
|
||||
- [ ] API 문서 업데이트 (필요시)
|
||||
|
||||
## 🧪 테스트 방법
|
||||
|
||||
[테스트 시나리오 및 확인 방법]
|
||||
|
||||
## 📸 스크린샷 (UI 변경 시)
|
||||
|
||||
[필요시 Before/After 스크린샷]
|
||||
|
||||
## 🔗 관련 이슈
|
||||
|
||||
Closes #[issue-number]
|
||||
|
||||
## 📝 추가 노트
|
||||
|
||||
[리뷰어가 알아야 할 추가 정보]
|
||||
```
|
||||
|
||||
### 특화된 템플릿
|
||||
|
||||
#### Feature PR 템플릿
|
||||
|
||||
- 기능 명세 및 요구사항
|
||||
- 사용자 시나리오
|
||||
- 성능 영향도 분석
|
||||
|
||||
#### Bugfix PR 템플릿
|
||||
|
||||
- 버그 재현 방법
|
||||
- 근본 원인 분석
|
||||
- 수정 방법 설명
|
||||
- 회귀 방지 계획
|
||||
|
||||
#### Documentation PR 템플릿
|
||||
|
||||
- 문서 변경 범위
|
||||
- 독자 대상
|
||||
- 검토 포인트
|
||||
|
||||
## 대화형 PR 생성
|
||||
|
||||
### PR 생성 마법사
|
||||
|
||||
```
|
||||
🚀 Pull Request 생성 마법사
|
||||
|
||||
1. 📊 변경사항 분석 중...
|
||||
✅ 파일 15개 변경됨 (+234, -67)
|
||||
✅ 브랜치: feature/user-authentication
|
||||
✅ 기반 브랜치: main
|
||||
|
||||
2. 🏷️ PR 유형 자동 감지
|
||||
→ ✨ Feature: 새로운 기능 추가
|
||||
|
||||
3. 📝 PR 제목 제안
|
||||
→ "✨ feat: 사용자 인증 시스템 구현"
|
||||
|
||||
4. 👥 리뷰어 추천
|
||||
→ @frontend-team, @security-team
|
||||
|
||||
5. 🏷️ 라벨 제안
|
||||
→ feature, authentication, breaking-change
|
||||
|
||||
PR을 생성하시겠습니까? (y/N)
|
||||
```
|
||||
|
||||
### 고급 옵션 설정
|
||||
|
||||
```
|
||||
⚙️ 고급 설정
|
||||
|
||||
📋 템플릿 선택:
|
||||
1. 기본 템플릿
|
||||
2. 기능 개발 템플릿
|
||||
3. 버그 수정 템플릿
|
||||
4. 문서 업데이트 템플릿
|
||||
|
||||
🎯 대상 브랜치: main ▼
|
||||
👥 리뷰어: @team-frontend ▼
|
||||
🏷️ 라벨: feature, ui ▼
|
||||
📌 마일스톤: v2.1.0 ▼
|
||||
|
||||
⭐ 추가 옵션:
|
||||
[ ] Draft PR로 생성
|
||||
[ ] Auto-merge 활성화
|
||||
[ ] 브랜치 자동 삭제 설정
|
||||
```
|
||||
|
||||
## GitHub Actions 통합
|
||||
|
||||
### 자동 CI/CD 트리거
|
||||
|
||||
- PR 생성 시 자동 빌드 시작
|
||||
- 테스트 실행 및 결과 표시
|
||||
- 코드 커버리지 리포트
|
||||
|
||||
### 품질 검사
|
||||
|
||||
- ESLint/Prettier 검사
|
||||
- TypeScript 타입 체크
|
||||
- 보안 스캔 (Dependabot)
|
||||
|
||||
### 자동 업데이트
|
||||
|
||||
- 의존성 충돌 자동 해결
|
||||
- 코드 포맷팅 자동 적용
|
||||
- 라이센스 확인
|
||||
|
||||
## 고급 기능
|
||||
|
||||
### PR 상태 관리
|
||||
|
||||
```
|
||||
/git:pr --status # PR 상태 확인
|
||||
/git:pr --draft # Draft로 전환
|
||||
/git:pr --ready # Ready for review로 전환
|
||||
/git:pr --merge # 자동 병합 (조건 충족시)
|
||||
/git:pr --close # PR 닫기
|
||||
```
|
||||
|
||||
### 배치 작업
|
||||
|
||||
```
|
||||
/git:pr --sync-all # 모든 PR 상태 동기화
|
||||
/git:pr --cleanup # 병합된 PR의 브랜치 정리
|
||||
/git:pr --update-all # 모든 PR을 최신 베이스로 업데이트
|
||||
```
|
||||
|
||||
### 분석 및 리포트
|
||||
|
||||
```
|
||||
/git:pr --analytics # PR 분석 리포트
|
||||
/git:pr --conflicts # 충돌 발생 PR 목록
|
||||
/git:pr --reviews # 리뷰 대기 중인 PR 목록
|
||||
```
|
||||
|
||||
## 팀 협업 기능
|
||||
|
||||
### 코드 리뷰 지원
|
||||
|
||||
- 리뷰 요청 자동 알림
|
||||
- 리뷰 완료 상태 추적
|
||||
- 승인 조건 자동 체크
|
||||
|
||||
### 프로젝트 관리 연동
|
||||
|
||||
- Jira/Linear 이슈 연동
|
||||
- 스프린트 보드 업데이트
|
||||
- 작업 시간 추적
|
||||
|
||||
## 보안 및 권한
|
||||
|
||||
### 권한 관리
|
||||
|
||||
- PR 생성 권한 확인
|
||||
- 브랜치 보호 규칙 준수
|
||||
- 리뷰 승인 요구사항 체크
|
||||
|
||||
### 보안 검사
|
||||
|
||||
- 시크릿 정보 누출 검사
|
||||
- 의존성 보안 스캔
|
||||
- 라이센스 호환성 확인
|
||||
|
||||
## 사용 예시
|
||||
|
||||
### 기본 PR 생성
|
||||
|
||||
```
|
||||
/git:pr
|
||||
# 대화형으로 PR 생성
|
||||
|
||||
/git:pr "사용자 인증 기능 구현"
|
||||
# 제목 지정하여 PR 생성
|
||||
```
|
||||
|
||||
### 특수 옵션 사용
|
||||
|
||||
```
|
||||
/git:pr --draft --reviewer="@team-lead"
|
||||
# Draft PR로 생성하고 특정 리뷰어 지정
|
||||
|
||||
/git:pr --template=bugfix --label="urgent"
|
||||
# 버그 수정 템플릿 사용하고 urgent 라벨 추가
|
||||
```
|
||||
|
||||
## 문제 해결
|
||||
|
||||
### 자주 발생하는 문제
|
||||
|
||||
1. **GitHub CLI 인증 오류**
|
||||
- `gh auth login` 실행 안내
|
||||
- 토큰 권한 확인
|
||||
|
||||
2. **브랜치 푸시 오류**
|
||||
- 원격 브랜치 생성
|
||||
- 권한 문제 해결
|
||||
|
||||
3. **PR 생성 실패**
|
||||
- 중복 PR 확인
|
||||
- 베이스 브랜치 확인
|
||||
|
||||
### 복구 방법
|
||||
|
||||
- 실패한 PR 재생성
|
||||
- 메타데이터 수동 수정
|
||||
- 템플릿 재적용
|
||||
|
||||
이 커맨드는 GitHub Pull Request 생성의 모든 과정을 자동화하면서도 팀의 워크플로우에 맞게 커스터마이징할 수 있습니다.
|
||||
Reference in New Issue
Block a user