이 문서는 병합(merge)을 수행하는 다양한 방법을 설명합니다.
GitHub 웹 인터페이스를 통해 Pull Request를 병합하는 가장 간단한 방법입니다.
-
PR 페이지로 이동
- GitHub 저장소의 "Pull requests" 탭을 클릭합니다
- 병합하려는 PR을 선택합니다
-
PR 검토
- 변경사항을 확인합니다 ("Files changed" 탭)
- CI/CD 검사가 통과했는지 확인합니다
- 리뷰어의 승인을 확인합니다
-
병합 실행
- PR 페이지 하단의 "Merge pull request" 버튼을 클릭합니다
- 병합 방법을 선택합니다:
- Merge commit: 모든 커밋 히스토리를 유지 (기본값)
- Squash and merge: 모든 커밋을 하나로 합침
- Rebase and merge: 커밋을 재배치하여 선형 히스토리 생성
- "Confirm merge" 버튼을 클릭합니다
-
브랜치 삭제 (선택사항)
- 병합 후 "Delete branch" 버튼을 클릭하여 불필요한 브랜치를 정리합니다
터미널에서 Git 명령어를 사용하여 병합하는 방법입니다.
# 1. main 브랜치로 이동
git checkout main
# 2. 최신 변경사항 가져오기
git pull origin main
# 3. 병합할 브랜치로 전환
git checkout feature-branch
# 4. 최신 변경사항 가져오기
git pull origin feature-branch
# 5. main 브랜치로 다시 전환
git checkout main
# 6. feature-branch를 main으로 병합
git merge feature-branch
# 7. 원격 저장소에 푸시
git push origin main# PR 목록 보기
gh pr list
# 특정 PR 병합
gh pr merge <PR번호>
# 병합 방법을 지정하여 병합
gh pr merge <PR번호> --merge # Merge commit
gh pr merge <PR번호> --squash # Squash and merge
gh pr merge <PR번호> --rebase # Rebase and merge
# 자동으로 브랜치 삭제
gh pr merge <PR번호> --merge --delete-branchRepoPilot이 생성한 정책 변경 PR을 병합하는 방법입니다.
-
정책 변경 확인
# PR 확인 gh pr view <PR번호> # 변경된 파일 확인 gh pr diff <PR번호>
-
정책 파일 검증
policy.labels.json: 라벨 정책policy.required-checks.json: 필수 검사policy.changelog.json: 릴리스 노트 설정
-
병합 실행
# 정책 PR 병합 gh pr merge <PR번호> --merge
# 라벨 추가
/policy labels-add type:ui
# 라벨 제거
/policy labels-rm type:hotfix
# 필수 검사 설정
/policy checks-set build,unit-test,e2e-chrome
# 릴리스 템플릿 설정
/policy release-set notes_heading=Notes이 명령어들은 이슈나 PR 코멘트에 작성하면 자동으로 새로운 정책 PR이 생성됩니다.
merge_bundle_and_apply_ruleset_v36.sh 스크립트를 사용하여 v3.6 번들을 병합하는 방법입니다.
gh(GitHub CLI)gitunzip- 대상 저장소에 대한 관리자 권한
# 기본 사용법
./merge_bundle_and_apply_ruleset_v36.sh <owner> <repo>
# 브랜치 이름 지정
./merge_bundle_and_apply_ruleset_v36.sh <owner> <repo> custom-branch-name
# 번들 파일 경로 지정
./merge_bundle_and_apply_ruleset_v36.sh <owner> <repo> branch-name /path/to/bundle.zip
# 환경 변수로 설정 지정
CHECKS="build,unit-test,e2e-chrome" \
COMPANY_DOMAINS="@mycompany.com" \
INCLUDE_BOTS="false" \
CONTRIB_MODE="all" \
./merge_bundle_and_apply_ruleset_v36.sh <owner> <repo>- 저장소를 임시 디렉토리에 클론
- v3.6 번들의 압축을 풀고 파일을 병합
- 새 브랜치를 생성하고 변경사항을 커밋
- PR을 생성하고 원격 저장소에 푸시
- 브랜치 보호 규칙과 필수 검사를 적용
- 저장소 변수 설정 (선택사항)
# PR 확인
gh pr list --state open
# PR을 검토하고 준비되면 병합
gh pr merge <PR번호> --merge병합 중 충돌이 발생하면 수동으로 해결해야 합니다.
-
충돌 발생 확인
git merge feature-branch # CONFLICT (content): Merge conflict in <파일명> -
충돌 파일 확인
git status # 충돌이 발생한 파일들이 "Unmerged paths"에 표시됩니다 -
충돌 마커 찾기 충돌이 발생한 파일을 열면 다음과 같은 마커를 볼 수 있습니다:
<<<<<<< HEAD 현재 브랜치의 코드 ======= 병합하려는 브랜치의 코드 >>>>>>> feature-branch -
충돌 해결
- 충돌 마커를 제거하고 원하는 코드를 선택합니다
- 또는 두 버전을 모두 통합하여 새로운 버전을 작성합니다
-
해결된 파일 추가
git add <충돌-해결된-파일>
-
병합 완료
git commit # 기본 병합 메시지가 자동으로 생성됩니다 -
원격 저장소에 푸시
git push origin main
충돌 해결이 어려운 경우 병합을 중단할 수 있습니다:
git merge --abort- 이슈를 생성하여 질문해주세요
- RepoPilot 관련 질문은
docs/REPOPILOT_MVP.md를 참고하세요