commit

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Claude Command: Commit

Claude Command: Commit

이 커맨드는 컨벤셔널 커밋 메시지를 사용하여 체계적인 커밋을 생성하도록 도와줍니다. 커밋시 husky 훅이 실행되므로, lint, typecheck 등의 검증을 필요하지 않습니다.
  1. --no-verify
    로 지정되면 --no-verify로 실행해 훅 실행을 건너 뜁니다.
  2. git status
    로 스테이징된 파일을 확인합니다
  3. 스테이징된 파일이 0개라면, 자동으로 모든 수정/신규 파일을
    git add
    로 추가합니다
  4. git diff
    를 수행하여 커밋될 변경사항을 파악합니다
  5. diff를 분석하여 여러 개의 논리적으로 구분된 변경사항이 있는지 판단합니다
  6. 여러 개의 구분된 변경사항이 감지되면, 커밋을 여러 개로 분할할 것을 제안합니다
  7. 각 커밋(또는 분할하지 않는 경우 단일 커밋)에 대해 컨벤셔널 커밋 형식으로 메시지를 생성합니다
该命令使用规范化提交信息帮助你创建结构化的提交。提交时会执行husky钩子,因此无需进行lint、类型检查等验证。
  1. 如果指定
    --no-verify
    ,则会以--no-verify执行,跳过钩子运行。
  2. 通过
    git status
    查看已暂存的文件
  3. 如果暂存文件数量为0,会自动用
    git add
    添加所有修改/新增的文件
  4. 执行
    git diff
    来确定要提交的更改内容
  5. 分析diff,判断是否存在多个逻辑上独立的更改
  6. 如果检测到多个独立更改,会建议将提交拆分为多个
  7. 针对每个提交(或不拆分的单个提交),生成规范化提交格式的信息

커밋 모범 사례

提交最佳实践

  • 커밋 전 검증: 코드가 린팅되고, 타입 체크를 통과하는지 확인
  • 원자적 커밋: 각 커밋은 단일 목적을 가진 관련된 변경사항만 포함
  • 큰 변경사항 분할: 여러 관심사를 다루는 변경사항은 별도 커밋으로 분할
  • 컨벤셔널 커밋 형식:
    <type>(<scope>): [#이슈번호] <설명>
    형식 사용, type은 다음 중 하나:
    • feat
      : 새로운 기능
    • fix
      : 버그 수정
    • docs
      : 문서 변경
    • style
      : 코드 스타일 변경 (포맷팅 등)
    • refactor
      : 버그 수정이나 기능 추가가 아닌 코드 변경
    • perf
      : 성능 개선
    • test
      : 테스트 추가 또는 수정
    • chore
      : 빌드 프로세스, 도구 등의 변경
    • ci
      : CI/CD 관련 변경
    • revert
      : 변경사항 되돌리기
  • 커밋 메시지 제목은 한국어로 작성: 설명은 한국어로 명확하게 작성
  • 간결한 첫 줄: 첫 줄은 72자 이내로 유지
  • 이모지 사용 금지: 커밋 메시지에 이모지를 넣지 않는다.
    type(scope):
    형식만 사용
  • 提交前验证:确认代码通过lint检查和类型校验
  • 原子提交:每个提交仅包含单一目的的相关更改
  • 拆分大型更改:涉及多个关注点的更改拆分为单独提交
  • 规范化提交格式:使用
    <type>(<scope>): [# 问题编号] <描述>
    格式,type可选值如下:
    • feat
      :新增功能
    • fix
      :修复bug
    • docs
      :文档修改
    • style
      :代码样式修改(如格式化等)
    • refactor
      :既非bug修复也非功能新增的代码修改
    • perf
      :性能优化
    • test
      :新增或修改测试
    • chore
      :构建流程、工具等的修改
    • ci
      :CI/CD相关修改
    • revert
      :撤销更改
  • 提交信息标题使用韩语:描述部分需用韩语清晰撰写
  • 首行简洁:首行控制在72字符以内
  • 禁止使用表情符号:提交信息中不得添加表情符号,仅使用
    type(scope):
    格式

커밋 분할 가이드라인

提交拆分指南

diff를 분석할 때, 다음 기준에 따라 커밋 분할을 고려합니다:
  1. 다른 관심사: 코드베이스의 서로 관련없는 부분의 변경
  2. 다른 변경 타입: 기능, 수정, 리팩토링 등이 섞인 경우
  3. 파일 패턴: 다른 유형의 파일 변경 (예: 소스 코드 vs 문서)
  4. 논리적 그룹화: 별도로 이해하거나 리뷰하기 쉬운 변경사항
  5. 크기: 분할하면 더 명확해질 수 있는 매우 큰 변경사항
分析diff时,根据以下标准考虑拆分提交:
  1. 不同关注点:代码库中互不相关部分的修改
  2. 不同更改类型:混合了功能、修复、重构等类型的情况
  3. 文件模式:不同类型文件的修改(例如:源代码 vs 文档)
  4. 逻辑分组:便于单独理解或评审的更改
  5. 规模:拆分后更清晰的大型更改

예시

示例

좋은 커밋 메시지 (한국어):
  • feat(react): [#52] 사용자 인증 시스템 추가
  • fix(react): [#63] 렌더링 프로세스의 메모리 누수 해결
  • docs(docs): 새로운 엔드포인트로 API 문서 업데이트
  • refactor(react): [#45] 파서의 에러 처리 로직 단순화
  • test(react): [#52] RowClick Feature 단위 테스트 추가
  • chore(root): 개발자 도구 설정 프로세스 개선
  • perf(react): [#45] 그룹 헤더 연관 기능 성능 개선
커밋 분할 예시:
  • 첫 번째 커밋:
    feat(react): [#52] 새로운 solc 버전 타입 정의 추가
  • 두 번째 커밋:
    docs(docs): 새로운 solc 버전에 대한 문서 업데이트
  • 세 번째 커밋:
    chore(deps): package.json 의존성 업데이트
  • 네 번째 커밋:
    test(react): [#52] 새로운 기능에 대한 단위 테스트 추가
良好的提交信息(韩语):
  • feat(react): [#52] 사용자 인증 시스템 추가
  • fix(react): [#63] 렌더링 프로세스의 메모리 누수 해결
  • docs(docs): 새로운 엔드포인트로 API 문서 업데이트
  • refactor(react): [#45] 파서의 에러 처리 로직 단순화
  • test(react): [#52] RowClick Feature 단위 테스트 추가
  • chore(root): 개발자 도구 설정 프로세스 개선
  • perf(react): [#45] 그룹 헤더 연관 기능 성능 개선
提交拆分示例:
  • 第一个提交:
    feat(react): [#52] 새로운 solc 버전 타입 정의 추가
  • 第二个提交:
    docs(docs): 새로운 solc 버전에 대한 문서 업데이트
  • 第三个提交:
    chore(deps): package.json 의존성 업데이트
  • 第四个提交:
    test(react): [#52] 새로운 기능에 대한 단위 테스트 추가

커맨드 옵션

命令选项

  • --no-verify
    : 커밋 전 검증 (lint, typecheck) 건너뛰기
  • --no-verify
    :跳过提交前验证(lint、typecheck)

중요 사항

重要事项

  • 기본적으로 코드 품질을 보장하기 위해 커밋 전 검증(
    pnpm lint
    ,
    pnpm typecheck
    )이 실행됩니다
  • 이러한 검증이 실패하면, 커밋을 계속 진행할지 아니면 먼저 문제를 수정할지 묻습니다
  • 특정 파일이 이미 스테이징되어 있다면, 해당 파일만 커밋됩니다
  • 스테이징된 파일이 없다면, 모든 수정 및 신규 파일을 자동으로 스테이징합니다
  • 커밋 메시지는 감지된 변경사항을 기반으로 작성됩니다
  • 커밋하기 전에 diff를 검토하여 여러 커밋으로 나누는 것이 더 적절한지 식별합니다
  • 여러 커밋을 제안하는 경우, 변경사항을 별도로 스테이징하고 커밋하도록 도와줍니다
  • 항상 커밋 diff를 검토하여 메시지가 변경사항과 일치하는지 확인합니다
  • 커밋 메시지는 반드시 한국어로 작성합니다
  • 이모지를 절대 사용하지 않습니다
  • body 각 줄은 100자를 넘지 않도록 합니다
  • 默认情况下,为保证代码质量,提交前会执行验证(
    pnpm lint
    pnpm typecheck
  • 如果验证失败,会询问你是继续提交还是先修复问题
  • 如果已有特定文件被暂存,则仅提交该文件
  • 如果没有暂存文件,会自动暂存所有修改和新增文件
  • 提交信息基于检测到的更改生成
  • 提交前会检查diff,判断是否拆分为多个提交更合适
  • 若建议拆分多个提交,会帮助你分别暂存并提交更改
  • 请始终检查提交diff,确保提交信息与更改内容一致
  • 提交信息必须使用韩语
  • 绝对禁止使用表情符号
  • body部分每行不得超过100字符