규범화 팀 git 제출 정보

9168 단어 WebiOSDev
같은 프로젝트 는 관리 하기 편리 하도록 git 의 commt 정 보 는 필요 할 때 편리 하 게 사용 할 수 있 도록 일정한 형식 으로 규범화 하 는 것 이 좋 습 니 다.편리 한 것 이 무엇 인지, 예 를 들 어 온라인 bug 가 발생 했 기 때문에 스크롤 백 작업 이 필요 하고 제출 정보 가 편리 한 포 지 셔 닝 문 제 를 알 게 되 었 습 니 다.코드 리 뷰 를 할 때 도 이번 commt 가 무엇 을 했 는 지 알 게 되 었 기 때문에 commt 표준화 장점 이 많 습 니 다. 예 를 들 지 않 습 니 다.
이루어지다
바로 생각 나 는 것 은 셸 을 이용 하여 git hook 과 결합 하여 git commt 단계 에서 입력 이 규범 에 부합 되 는 지 확인 하 는 것 입 니 다.부합 되면 통과 하고 부합 되 지 않 으 면 중지 하 며 알림 메 시 지 를 드 립 니 다.
규범 은 무엇 입 니까?
흔히 볼 수 있 는 분 류 는 다음 과 같은 몇 가지 가 있다.
  • build: 프로젝트 의 구축 시스템 (xcodebuild, webpack, glup 등) 을 수정 하 는 제출
  • ci: 프로젝트 의 지속 적 인 통합 프로 세 스 (Kenkins, Travis 등) 의 제출
  • chore: 구축 과정 또는 보조 도구 의 변화
  • docs: 문서 제출 (문서)
  • feat: 새로운 기능 (feature)
  • fix: 버그 복구
  • pref: 성능, 체험 관련 제출
  • refactor: 코드 재 구성
  • revert: 더 일찍 제출 하기
  • style: 프로그램 논리 에 영향 을 주지 않 는 코드 수정, 주로 스타일 의 최적화, 수정
  • test: 테스트 관련 개발
  • 바퀴.
    github 에 commtlint 라 는 프로젝트 가 있 습 니 다. 프로젝트 에서 쉽게 설정 할 수 있 고 위 에서 말 한 '규범', '분류' 를 사용자 정의 할 수 있 습 니 다.
    commtlint: 제출 정보 husky: hook 도 구 를 검사 하 는 데 사 용 됩 니 다. git - commt 와 git - push 단계 에 사 용 됩 니 다.
    어떻게?
  • node 프로젝트 초기 화: npm init -y
  • 설치 에 필요 한 의존.npm install --save-dev @commitlint/config-conventional @commitlint/cli husky
  • 프로젝트 루트 디 렉 터 리 에 새 프로필 을 만 듭 니 다. 이름 은 commitlint.config.js 입 니 다.
  • commitlint. config. js 에 설정 정보 추가
    const types = [
      'build', 
      'ci', 
      'chore',
      'docs', 
      'feat', 
      'fix', 
      'pref', 
      'refactor', 
      'revert', 
      'style', 
      'test'
    ];
    
    typeEnum = {
      rules: {
        'type-enum': [2, 'always', types]
      },
      value: () => types
    }
    
    module.exports = {
        extends: [
          "@commitlint/config-conventional"
        ],
        rules: {
          'type-case': [0],
          'type-empty': [0],
          'scope-empty': [0],
          'scope-case': [0],
          'subject-full-stop': [0, 'never'],
          'subject-case': [0, 'never'],
          'header-max-length': [0, 'always', 72],
          'type-enum': typeEnum.rules['type-enum']
        }
      };
    
  • package. json 파일 에 다음 코드 를 추가 합 니 다. 코드 등급 은 devDependencies 와 같 습 니 다.
    "husky": {
        "hooks": {
            "pre-commit": "echo '哈喽,小伙伴们,在这里可以做测试相关的逻辑哦,一般结合公司的 ci'",
            "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
            "pre-push": "echo 提交代码前需要先进行单元测试 && 可以做测试相关"
        }
    }
    

  • 위의 프로 세 스 설정 이 완료 되 었 습 니 다. commt 정 보 를 제출 하 는 입력 내용 이 : 규칙 에 부합 되 지 않 으 면 종료 되 고 알림 정 보 를 드 립 니 다.
    type 은 위의 종류 입 니 다.subject 는 제출 해 야 할 문자 요약 입 니 다.예 를 들 어 feature: 호텔 추천 기능 을 추가 합 니 다.
    작은 설명: husky 를 사용 하지 않 으 려 면 인자 - no - verify 를 추가 할 수 있 습 니 다.git commit --no-verify -m "xxx"
    효과 도 를 붙이다
    [외부 체인 이미지 저장 에 실 패 했 습 니 다. 원본 사이트 에 도 난 방지 체인 메커니즘 이 있 을 수 있 습 니 다. 그림 을 저장 해서 직접 업로드 하 는 것 을 권장 합 니 다 (img - E6477 Neq - 1585766540750) (https://github.com/FantasticLBP/knowledge-kit/raw/master/assets/2020-02-25-Commitlint.png)]
    공정 설명
    패키지 허 스키 를 설치 할 때 디 렉 터 리 .git/hooks/ 아래 셸 스 크 립 트 를 생 성하 여 git 의 hook 를 책임 집 니 다."commit-msg": "commitlint -E HUSKY_GIT_PARAMS" 이 설정 은 git hooks 에 알려 줍 니 다. 실행 git commit -m 할 때 commt - msg 갈 고 리 를 터치 하고 husky 에 게 알 리 며 실행 commitlint -E HUSKY_GIT_PARAMS 합 니 다. 실제로 실 행 된 것 은 ./node_modules/husky/bin/run.js commitlint. config. js 의 설정 을 읽 은 다음 에 commt - m 의 문자열 을 검사 합 니 다. 통과 하지 않 으 면 오류 정 보 를 출력 하고 종 료 됩 니 다.
    확장 편
    git commt 의 갈고리 도 드 러 났 기 때문에 타 이 밍 과 결합 하여 추가 논 리 를 할 수 있 습 니 다.
  • pre - commit: git commit 전에 터치
  • commt - msg: commt 정 보 를 작성 할 때 터치
  • pre - push: git push 전에 촉발
  • 그래서 상기 시 기 를 바탕 으로 프로젝트 의 특징 에 따라 다른 일 을 할 수 있다.예 를 들 어 code lint, unittest 코드 보급률 검 측, changelog 자동 생 성, unittest 스 크 립 트 등 도 이 기 회 를 빌려 lint 보고 서 를 만 들 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기