좋은 커밋을 만드는 것

2581 단어 gitwebdev
첫째, 커밋의 주요 목표는 원자적 변경을 도입하는 것입니다.

원자적 변경에는 단 하나의 기능, 리팩터링, 수정 등이 포함됩니다.

좋은 커밋은 한 번에 하나의 변경 사항을 평가할 수 있으며 필요한 모든 변경 사항만 포함합니다.

잘못된 커밋은 잘못된 작업 흐름으로 인해 발생합니다.

귀하의 작업 흐름은 좋은 커밋에 포함되어야 하는 내용을 거의 반영하지 않습니다.

10번 중 9번, git commit -a를 사용하여 커밋하면 💩 커밋이 됩니다.

워크플로는 다음과 같아야 합니다.
  • 기능 개발 완료 및 테스트
  • 수행해야 했던 모든 변경 사항과 이를 표시할 방법을 다시 생각해 보십시오
  • .
  • 선택한 라인/리베이스를 스테이징하여 논리적 청크/순서로 커밋을 도입하는 커밋 생성

  • 아직 수행하지 않은 경우 대화형 준비를 수행하는 방법을 알아보십시오.

    http://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging

    git 외에도 GUI를 제공하고 매우 간단하게 만드는 수많은 도구가 있습니다. 내가 가장 좋아하는 것은 타워입니다.

    위의 작업을 수행하면 PR 커밋은 다음과 같은 내용을 읽어야 합니다.

    * feat: add claimUsername test helper
    * test: ensure that username is at least 5 characters long
    * test: ensure that in-use username cannot be claimed
    * refactor: have registerNewTestUser use claimUsername
    * refactor: have completeUserOnboarding use claimUsername
    


    이러한 커밋은 개별적으로 검토하고 논의할 수 있는 변경 사항을 도입하기 때문에 검토하기 쉽습니다.

    또한 커밋을 읽는 것만으로도 모든 변경 사항에 대한 좋은 정신적 지도를 얻을 수 있습니다.

    또한 잠재적인 주요 변경 사항을 더 빨리 발견하는 데 도움이 됩니다.
  • 함수를 추가하면 코드가 손상될 수 있습니까? 아니오
  • 테스트를 추가하면 코드가 손상될 수 있습니까? 아니오
  • 새 기능을 사용하도록 기존 코드를 리팩토링하면 코드가 손상될 수 있습니까? 어쩌면

  • 모든 커밋 후에 코드가 작동하는 것도 매우 중요합니다.

    그렇지 않으면 코드베이스를 이전 시점으로 안전하게 되돌릴 수 없습니다.

    위 사항을 적용하지 않으면 PR을 병합할 때 스쿼시 커밋을 적용해야 합니다.

    전문가 팁: 엔지니어링 작업을 위해 인터뷰하는 경우 면접관에게 기여할 코드베이스의 최근 커밋 로그를 공유하도록 요청하십시오.

    git log --pretty=oneline --abbrev-commit
    


    그들이 가지고 있는 엔지니어링 문화에 대해 많은 것을 알려줄 것입니다.

    대조적으로, 잘못된 커밋 로그는 "가는 대로 커밋"한 결과이며 다음과 같이 보입니다.

    * test: add helper
    * refactor: use helper
    * fix: add missing configuration
    * fix: inline editing
    * fix: failing tests
    * fix: revert earlier fix
    * refactor: use helper
    


    이러한 커밋은 포함된 변경 사항이 비원자 및 비선형이기 때문에 좋지 않습니다. 검토자가 이러한 변경 사항을 평가하는 유일한 방법은 수정된 모든 파일을 한 번에 보는 것입니다. 누군가에게 짊어지는 것은 큰 정신적 부담입니다. ☹️

    커밋 메시지 자체의 내용/형식에 대해서는 언급하지 않았습니다. 채택하는 규칙은 원자 커밋을 갖는 것보다 훨씬 덜 중요합니다. 실제로 훌륭한 커밋 메시지는 원자 커밋의 부산물/표시이며 그 반대도 마찬가지입니다.

    그리고 "이것은 많은 일이다", "아무도 이것을 읽지 않는다"또는 "그것은 나를 느리게 한다"라고 생각하는 경우, 당신이 하고 있는 스포츠를 재평가해야 합니다. 공학은 팀 스포츠입니다. 훌륭한 엔지니어링 입력 화합물.

    모든 커밋/PR이 완벽할 필요는 없지만 누가 노력하고 있는지 보여주고 다른 사람들이 당신이 노력하는 것을 본다면 그들은 그렇게 할 것입니다. 🕊

    더 많은 내 콘텐츠를 보려면 Twitter에서 나를 팔로우하세요.

    좋은 웹페이지 즐겨찾기