Git 배포 플로우 자동화 스킬. 아래 커맨드 중 하나가 언급될 때 반드시 이 스킬을 사용한다. - /feat {issue-key} — feature 브랜치 생성 - /finish-feat {issue-key} — feature 작업 완료 후 push + PR 생성 (develop 대상) - /start-rc {version} — RC 브랜치 생성 및 동기화 확인 - /rc-fix {issue-key} — RC 중 버그수정 브랜치 생성 - /revert-issue {issue-key} — RC에서 특정 이슈 전체 revert - /release {version} — 배포 (main merge + 태깅 + develop sync) - /hotfix {version} — 핫픽스 브랜치 생성 - /finish-hotfix — 핫픽스 완료 및 RC rebase 개발자가 브랜치 생성, 배포, 핫픽스 등 Git 배포 플로우 단계를 실행할 때 항상 사용.
main (프로덕션), develop (개발 통합)feat/{jira-issue-key} — 기능 개발 (e.g. feat/ABC-12, feat/PROJ-99)rc/{version} — 배포 준비/QA (e.g. rc/2.1.0.0)fix/{jira-issue-key}-{N} — RC 중 버그수정, N 자동 증가 (e.g. fix/ABC-12-1, fix/ABC-12-2)hotfix/{version} — 배포 후 긴급수정 (e.g. hotfix/2.1.0.0)Major.Minor.Hotfix.Test/feat {issue-key}feature 브랜치를 생성한다. develop 최신화 후 분기.
git fetch origingit checkout develop && git pull origin developgit checkout -b feat/{issue-key}/finish-feat {issue-key}feature 작업을 완료하고 push 후 develop으로 PR을 생성한다.
feat/{issue-key}인지 확인. 아니면 에러 후 중단git push origin feat/{issue-key}git log develop..HEAD --oneline
.github/PULL_REQUEST_TEMPLATE.md 존재 여부 확인
gh pr create --base develop --head feat/{issue-key} \
--title "..." \
--body "..."
/start-rc {version}배포 준비 RC 브랜치를 생성하고 리모트에 push한다. develop과 main이 동기화되어 있는지 먼저 확인.
git fetch origingit diff origin/develop origin/main 실행
git checkout develop && git pull origin developgit checkout -b rc/{version}git push origin rc/{version}git tag {version}
git push origin {version}
(예: rc/2.1.0.0 → 태그 2.1.0.0)/rc-fix {issue-key} 사용 안내/rc-fix {issue-key}RC 테스트 중 버그 발견 시 수정 브랜치를 생성하고, 머지 후 test 번호를 올려 태그를 찍는다. N은 자동 계산.
rc/로 시작하는지 확인. 아니면 에러 후 중단rc/2.1.0.0 → 2.1.0)git branch -a | grep "fix/{issue-key}-"
git checkout -b fix/{issue-key}-{N}git push origin fix/{issue-key}-{N}
gh pr create --base rc/{version} --head fix/{issue-key}-{N} \
--title "fix: {issue-key}" \
--body "RC {version} 버그수정"
git checkout rc/{version} && git pull origin rc/{version}
# 현재 RC에 해당하는 최신 태그의 test 번호 조회
git tag --list "{major}.{minor}.{hotfix}.*" --sort=-v:refname | head -1
# test 번호 +1 하여 새 태그 생성
git tag {major}.{minor}.{hotfix}.{test+1}
git push origin {major}.{minor}.{hotfix}.{test+1}
(예: 최신 태그 2.1.0.1 → 새 태그 2.1.0.2)/revert-issue {issue-key}QA 요청으로 특정 이슈를 배포 리스트에서 제외할 때 사용. 해당 이슈의 모든 머지 커밋을 revert.
rc/로 시작하는지 확인. 아니면 에러 후 중단git log --oneline --merges
feat/{issue-key} 머지 커밋fix/{issue-key}-* 머지 커밋 전부git revert -m 1 {commit-hash}
/release {version}RC를 PR을 통해 main과 develop에 머지하고 배포 태그를 생성한다. 모든 머지는 PR로 진행하여 GitHub에서 이력을 확인할 수 있도록 한다.
배포 태그는 RC 버전의 minor를 +1하고 hotfix·test를 0으로 리셋한 버전을 사용한다.
(예: rc/2.1.0.3 → 배포 태그 2.2.0.0)
git fetch originrc/{version} 리모트 브랜치 존재 확인. 없으면 에러 후 중단{major}.{minor} 파싱minor +1, hotfix=0, test=0 → release_version = {major}.{minor+1}.0.0{release_version}으로 생성됩니다. 계속할까요?"gh pr create --base main --head rc/{version} \
--title "release: {release_version}" \
--body "RC {version} → main 배포 (태그: {release_version})"
git checkout main && git pull origin main
git tag {release_version}
git push origin {release_version}
(예: 2.2.0.0)gh pr create --base develop --head rc/{version} \
--title "chore: merge rc/{version} into develop" \
--body "release {version} 배포 후 develop 동기화"
git fetch origin && git diff origin/develop origin/main 동기화 확인/hotfix {version}프로덕션 배포 후 긴급 버그 발생 시 main에서 핫픽스 브랜치를 생성한다.
git fetch origingit checkout main && git pull origin maingit checkout -b hotfix/{version}/finish-hotfix 실행 안내/finish-hotfix핫픽스를 PR을 통해 main에 머지하고 진행 중인 RC 브랜치가 있으면 rebase한다.
hotfix/로 시작하는지 확인. 아니면 에러 후 중단git push origin {hotfix_branch}gh pr create --base main --head {hotfix_branch} \
--title "hotfix: {hotfix_branch}" \
--body "핫픽스 → main 머지"
git branch -a | grep "rc/"
git checkout {rc_branch} && git rebase origin/maingit push origin {rc_branch} --force-with-leasegit push는 각 단계에서 명시적으로 표기된 경우에만 실행. 표기 없으면 push 전에 사용자 확인git branch --show-current) 출력