Commands/git + github

2. tag & release

꼰대코더 2025. 2. 5. 19:37
  • 태그(Tag) & 릴리스(Release) 사용 가이드
    • 태그(tag)는 프로젝트 저장소 내에서 특정 커밋(commit)을 ‘버전’ 또는 ‘중요 시점’으로 고정해 두는 표시입니다.
    • 릴리스(release)는 그 태그를 기준으로 소프트웨어 배포 가능 상태를 만들어 사용자나 팀원에게 알리는 기능입니다. 
    • 따라서 태그 + 릴리스를 활용하면 다음과 같은 이점이 있습니다:
      1. 버전 관리 명확화 — “이 커밋이 v1.0이다” 하고 고정할 수 있어서 나중에 이력을 추적하기 쉬워집니다.
      2. 배포/배포 가능 버전 표시 — 사용자나 다른 팀원이 “이게 릴리스 버전이다” 라고 인식할 수 있습니다.
      3. 문서화 및 이력 관리 — 릴리스 노트를 써서 무엇이 바뀌었는지를 기록하면 유지보수에도 도움이 됩니다.
    GitHub(혹은 Git)에서 태그와 릴리스를 만드는 방법웹 UI 기준
    1. 저장소(Repository)의 메인 페이지에서 우측 상단 또는 메뉴에서 “Releases” 혹은 “Create a new release” 버튼을 클릭합니다. 

    2. “Choose a tag” 드롭다운을 눌러 새 태그를 입력하거나 기존 태그를 선택합니다. 

    3. (선택 사항) Generate release notes 버튼을 눌러 자동 샘플 릴리스 노트를 생성한 후 내용을 편집합니다. 

    4. “Publish release” 버튼을 눌러 릴리스를 공개합니다. 
      추천 워크플로우 예시
      1. main 또는 master 브랜치에서 기능 개발 → 기능 완료 후 feature/x 브랜치에서 main으로 PR 머지
      2. 머지 완료 후 main에서 v1.2.0-rc.1 같은 릴리스 후보(tag) 생성 → QA, 테스트
      3. 테스트 완료되면 v1.2.0 태그 생성 → 릴리스 노트 작성 → 릴리스 퍼블리시
      4. 버그가 나올 경우 v1.2.0-hotfix.1 브랜치 생성 → 수정 후 v1.2.1 태그 및 릴리스
      5. 자동화: PR 머지 시 자동으로 태그 생성하고 GitHub 릴리스를 발행하는 Action을 설정해두면 수동 오류가 줄어듭니다.

      CLI(명령어) 기준
      # 태그 생성 (annotated tag 권장)
      git tag -a v1.0.0 -m "Release version 1.0.0"

      # 원격 저장소에 태그 푸시
      git push origin v1.0.0

      # 모든 태그 한꺼번에 푸시
      git push origin --tags

      # 릴리스는 GitHub CLI 등을 통해 생성 가능
      gh release create v1.0.0 --title "v1.0.0" --notes "Initial stable release"