본문 바로가기
GIT

[git] semantic-release에서 커밋 실수로 누락된 배포 해결 방법

by haheehee 2025. 3. 17.
728x90

 

semantic-release는 Git 커밋 메시지를 기반으로 버전 관리와 자동 배포를 수행하는 도구입니다. 하지만 실수로 fix 또는 feat와 같은 Conventional Commit 태그를 빼먹었다면, 배포가 누락될 수 있습니다. 이런 상황에서 배포를 다시 트리거하는 방법을 자세히 안내합니다.

1. 왜 semantic-release에서 커밋 메시지가 중요한가?

semantic-release는 Conventional Commits 방식을 사용하여 커밋 메시지를 분석하고, 이에 따라 자동으로 버전을 업데이트하고 배포를 진행합니다.

예를 들어, 다음과 같은 규칙이 있습니다:

  • fix: - 패치 버전 (bug 수정)
  • feat: - 마이너 버전 (새로운 기능 추가)
  • feat!: BREAKING CHANGE - 메이저 버전 (기존 기능의 큰 변화)

* 해당 내용의 글을 작성했으니, 참고하면 좋을 것 같습니다. (https://hhahee.tistory.com/187)

따라서 커밋 메시지에 이러한 태그가 빠지면, semantic-release는 변경 사항을 인식하지 못해 배포가 자동으로 이루어지지 않습니다.

2. 빈 커밋으로 배포 트리거하기

커밋 메시지 실수로 배포가 누락되었다면, 새로운 빈 커밋을 만들어 배포를 다시 트리거할 수 있습니다. 빈 커밋은 코드의 실제 변경 없이 단순히 새로운 커밋 기록만 생성됩니다.

📄 사용 예시

git commit --allow-empty -m "fix: 누락된 커밋 메시지로 배포 트리거"
git push

✅ 명령어 설명

  • --allow-empty: 실제로 변경된 파일이 없어도 빈 커밋을 생성하도록 허용합니다.
  • -m "fix: ...": Conventional Commit 형식의 메시지를 작성하여 semantic-release가 해당 커밋을 감지하고 배포하도록 합니다.
  • git push: 원격 저장소에 커밋을 푸시하여 배포를 트리거합니다.

🚨 주의사항

  • 빈 커밋을 생성해도 실제 코드 변경은 없습니다. 하지만 semantic-release는 해당 커밋 메시지를 기반으로 배포를 트리거합니다.
  • 커밋 메시지에 fix:와 같은 Conventional Commit 태그를 반드시 포함해야 합니다.
  • 빈 커밋을 너무 자주 사용하면 기록 관리가 복잡해질 수 있으므로, 실수는 최소화하는 것이 좋습니다.

이 방법은 실수로 인해 배포가 누락된 경우 가장 빠르고 안정적으로 배포를 다시 트리거하는 방법입니다.

3. 배포 전 Dry Run 테스트하기

배포가 정상적으로 이루어질지 사전에 확인하고 싶다면 --dry-run 옵션을 사용할 수 있습니다.

npx semantic-release --dry-run

이 명령어를 통해 어떤 버전이 배포될 예정인지 미리 확인할 수 있습니다.

4. 협업 시 주의사항

  • 협업 중이라면 --force 푸시는 피하고, 팀원과 협의하여 진행하세요.
  • 불필요한 빈 커밋 생성을 피하고, 정확한 커밋 메시지를 작성하는 습관을 들이세요.
  • 정기적으로 커밋 메시지를 검토하여 실수를 방지하세요.

5. 결론

semantic-release에서 커밋 실수로 배포가 누락되더라도, 빈 커밋을 추가하거나 적절한 Conventional Commit 태그를 사용하여 손쉽게 배포를 다시 트리거할 수 있습니다. 사전 테스트와 주기적인 메시지 검토를 통해 안정적인 배포를 유지하세요.

 

 

728x90

댓글