좋은 Git 커밋

Git 커밋은 어디에나 있으며 1년 동안 1,000개 이상의 커밋을 생성할 수 있습니다. 따라서 커밋이 확장 가능한 방식으로 구조화되고 생성되어야 한다는 것을 이해하는 것이 중요합니다.



왜 귀찮게?


  • 더 나은 커밋을 작성하면 디버깅 세션이 1시간에서 몇 분까지 지속되는 차이를 만들 수 있습니다.
  • 좋은 커밋을 사용하면 누구나 프로젝트의 진행 상황을 쉽게 이해하고 속도를 높일 수 있습니다.
  • 또한 검토자가 문제를 해결하는 동안 진행 상황을 명확하게 이해할 수 있습니다.
  • 좋은 커밋을 생성하면 특정 모듈/파일에 대한 변경 사항/문제를 추적하고 이를 코드에 쉽게 연결할 수 있습니다.
  • 이를 통해 코드베이스에 문제가 발생한 방식과 문제를 쉽게 해결할 수 있는 방법을 이해할 수 있습니다.
  • 좋은 커밋 메시지를 사용하면 릴리스 노트를 만드는 동안 번거로움을 덜 수 있습니다
  • .

    좋은 커밋이란?



    모듈식





    커밋은 코드베이스와 마찬가지로 본질적으로 모듈식이어야 합니다. 각 커밋은 여러 변경 사항에 걸쳐 있을 수 있지만 전체적으로 단일 관련 변경 그룹인 단일 논리적 아이디어만 캡슐화해야 합니다.

    예를 들어 구성 요소에 CSS를 추가하고, 모든 페이지의 여백을 변경하고, 함수를 강력하게 타이핑하는 등

    커밋 유형



    커밋을 유형으로 분류하면 어떤 유형의 변경이 발생했는지 명확히 하고 즉시 식별할 수 있습니다. 저는 보통 이러한 유형이 포함된 템플릿 파일을 보관하므로 기억할 필요가 없습니다 :P

    하위 유형 중 일부는 집안일, 위업, 수정, 리팩터링, 스타일 등이 될 수 있습니다. 각 캐리의 의미는 팀이나 개인에 따라 다를 수 있습니다. 다음은 커밋에서 사용하는 유형입니다.
  • 위업: 새 기능
  • 수정: 버그 수정
  • 리팩토링: 프로덕션 코드 리팩토링
  • 스타일: 서식 지정, 세미콜론 누락 등. 코드 변경 없음
  • 문서: 문서 변경 사항
  • 테스트: 프로덕션 코드 변경 없이 테스트 추가 또는 리팩터링
  • 자질구레한 일: 종속성 업데이트 등 프로덕션 코드 변경 없음

  • 설명




    50자로 제한된 제목 줄을 제외한 커밋 메시지는 72자 줄/줄로 구분된 설명을 포함해야 합니다. 설명은 빈 줄로 제목과 구분됩니다. 설명은 다음과 같은 내용을 다루어야 합니다.
  • 현재 동작,
  • 어떤 변화를 만들고 있습니까?
  • 이 수정이 필요한 이유는 무엇입니까?
  • 이 변경 사항에 대해 현재 접근 방식을 사용하는 이유는 무엇입니까?

  • 커밋 메시지는 미래형이어야 합니다. 즉, 'Fix' 대 'Fixed'입니다.

    보너스 트리트먼트




    $HOME/.gitconfig에 다음 구성을 추가하여 git 커밋에 대한 템플릿을 지정할 수 있습니다.

    [commit]
        template = ~/path/to/template
    


    내 템플릿은 다음과 같으며 제목 및 설명 줄의 문자 수를 제한할 수 있습니다. 나는 또한 유형을 추가하고 기억하지 못하는 경우를 대비하여 :'(

    # <type>: <subject>
    ##### Subject 50 characters ################# -> |
    
    
    # Body Message
    ######## Body 72 characters ####################################### -> |
    
    # --- COMMIT END ---
    # Type can be
    #   feat    : new feature
    #   fix     : bug fix
    #   refactor: refactoring production code
    #   style   : formatting, missing semi colons, etc; no code change
    #   docs    : changes to documentation
    #   test    : adding or refactoring tests
    #             no production code change
    #   chore   : updating grunt tasks etc
    #             no production code change
    


    참고: 템플릿을 프롬프트하려면 git commit를 사용해야 합니다.

    이것은 나의 첫 번째 게시물입니다 당신이 그것을 좋아했으면 좋겠다 =)

    좋은 웹페이지 즐겨찾기