본문 바로가기
git

[git] Git Convention 알아보기

by soobaaaam 2022. 1. 3.
728x90

 Git을 사용할 때 규칙(Convention)을 사용하면 여러 사람들과 협업할 때, 보다 효율적으로 일할 수 있다.

 본 글에서는 commit message convention, branch naming convention, repository naming convention에 대해 알아본다.


1. Commit Message Convention

 

 먼저 commit message의 구조는 위 사진과 같다.

 맨 위부터 제목, 본문, 꼬리말로 구성되어있다.

 

1.1. type

 내가 작성한 commit message의 의도를 다른 사람들에게 전달하기 위해선 위 구조에서 <type> 부분에 다음과 같은 요소들을 포함한다.

fix 버그를 수정한 경우
feat 새로운 기능을 추가한 경우
BREAKING CHANGE 큰 API 변경이 있는 경우
HOTFIX 치명적인 버그를 급하게 수정해야 하는 경우
Style 코드 포맷 변경, 세미 콜론 누락 등 코드 수정이 없는 경우
Refactor 프로덕션 코드 리팩토링
Comment 필요한 주석 추가 및 변경
Docs 문서를 수정한 경우
Test 테스트를 추가한 경우
Chore 빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우
Rename 파일 혹은 폴더명을 수정하거나 옮기는 작업을 한 경우
Remove 파일을 삭제하는 작업을 한 경우

 

1.2. subject

- 제목은 영문 기준 50자 이내로 작성한다.

- 첫 글자는 대문자로 작성하며 끝에 마침표를 찍지 않는다.

 

1.3. Body

- 본문은 한 줄 당 72자 이내로 작성한다.

- 전체 내용은 양과 상관없이 최대한 상세하게 작성한다.

- '어떻게' 보단 '무엇을', '왜' 변경했는지를 설명한다.

 

1.4. footer

- 꼬리말은 선택적이며 이슈 트래커 ID를 작성한다.

- 여러 개의 이슈 번호를 적을 때는 쉼표로 구분한다.

- 이슈 트래커 유형은 다음과 같다.

  • Fixes : 이슈 수정중
  • Resolves : 이슈를 해결했을 때
  • Ref : 참고할 이슈가 있을 때
  • Related to : 해당 커밋에 관련된 이슈 번호(아직 해결되지 않음)

- ex) Fixes: #45 Related to: #34, #23

 

 

2. Branch Naming Convention

 

master branch 사용자에게 배포 가능한 상태를 관리하는 branch.
develop branch 다음 출시 버전을 개발하는 branch. 배포가 가능해진 상태가 되면 develop branch를 master branch로 merge한다.
feature branch 기능을 개발하는 branch. 새로운 기능 개발 및 버그 수정이 필요할 때마다 develop branch에서 분기한다.
release branch 이번 출시 버전을 준비하는 branch.
hotfix branch 출시 버전에서 발생한 버그를 수정하는 branch. 배포한 버전에서 긴급히 수정을 해야 하는 경우에 master branch에서 분기한다.

 

3. Repository Naming Convention

 

- 소문자를 사용한다.

- 대시(-)를 사용한다.

- 명확하게 작성한다.

- 일관성 있게 작성한다.


* 본 글은 https://overcome-the-limits.tistory.com/entry/%ED%98%91%EC%97%85-%ED%98%91%EC%97%85%EC%9D%84-%EC%9C%84%ED%95%9C-%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9D%B8-git-%EC%BB%A4%EB%B0%8B%EC%BB%A8%EB%B2%A4%EC%85%98-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0,

https://velog.io/@kim-jaemin420/Git-branch-naming, https://stackoverflow.com/questions/11947587/is-there-a-naming-convention-for-git-repositories

를 참고하여 작성하였습니다.