능히 해낼 수 있다

230130 협업: git commit convention 작성하기 본문

개발🌐/Git | GitHub

230130 협업: git commit convention 작성하기

roni_eo 2023. 1. 30. 23:07
반응형

✍️✍️✍️ 위 글은 작성자의 지식습득에 따라 추후 퇴고 될 수 있음을 알려드립니다(피드백 환영).

 

 


 

현재, 4차과제를 진행 중에 있다.

실제 프로덕트를 배포 하는 것 처럼 A-Z까지 API를 연결하며 구현해야한다.

스터디 조원으로 구성되는 과제가 (애석하게도)아니었기 때문에

새로운 분들과 한달을 함께 진득하게 공부할 새로운 시간이 생겼다.

 

아무튼 여러 사람들과 진행해야하는 프로젝트이다보니, 
UX부터 시작해서 기술구현을 위한 번들러, 라이브러리 픽스하기, 디자인, 색깔 등등
사소한거 하나하나 정하는 과정을 거쳐야 했는데,

 

그 중 가장 중요한 협의 요소 중 하나인 깃 허브 관리!

어떤 식으로 관리 할 것인지 부터 시작해, 브랜치관리는 어떻게 할건지,
깃 커밋 멘트는 어떻게 할 것인지, 또 커밋 멘트는 어떤 상황에서 어떤 내용의 커밋 멘트를 작성할 것인지
pr(pull request)은 어떻게 할것인지 등등 프로젝트를 진행하면서 소스코드의 원활한 관리를 위한

팀원들간의 약속을 정하는데, 이 약속들을 정하면서 추후 잘 알아보기 위해
커밋 메시지 제목과 내용을 픽스하는데 이 과정을 git convention이라 한다.

 


Git Convention

아래 표는 자신이 부여받은 기술을 작업 한 후 깃 허브에 푸시할 때, 작성하는 커밋 컨벤션 태그와 그에 대한 설명이다.

태그이름 태그 설명
!HOTFIX 급하게(치명적인) 버그를 고쳐야하는 경우
!BREAKING CHANGE API 변경의 경우
(큰 규모인지라 긴급변환이라는 표현을 사용하는 듯하다)
Conf 맨 처음 초기 페이지를 푸시하는 경우
(ex. Conf: init index.html)
Docs 문서 수정 (ex. README.md)
Feat 새로운 기능추가
Fix 버그를 고친 경우
Design CSS 등 UI디자인 변경
Style 코드 포맷변경, ;(세미콜론)누락, 코드 수정이 없는 경우
Rename 파일이나 폴더 명을 바꾸거나
위치를 옮기는 작업 정도만 한 경우
Remove 파일 이나 폴더를 삭제하는 작업만 수행한 경우
Refactor 프로덕트 코드 리팩토링 한 경우
Comment 필요 주석 추가 및 변경 한 경우
Test 테스트 추가, 테스트 리팩토링
(프로덕트 코드 변경은 해당 X)
Chore 패키지 매니저 설정, 또는 빌드 테스트 업뎃
(프로덕트 코드 변경은 해당 X)


우선 현재 작업하기로 한 플젝에서 정한 컨벤션은 이정도 이다.

예시

1. git commit 입력 후, 커밋 입력 터미널로 넘어가기

git commit

 

2. 커밋 내용 입력하기

2 - 1. 컨벤션 적용한 커밋 제목 작성하기
2 - 2. 엔터 치고 상세 내용 입력하기

Feat: 검색필터

특정 상품 검색 시, 필터링 되어 검색한 상품 내역 랜더링 구현

 

3. :wq 입력 후 저장하고 상위 터미널로 나가기

 

4. git pull origin || upstream develop 해서 코드 푸시하기

 

이러한 단계로 진행하게 되면, git hub에 내가 보낸 commit내용에 상세 내용으로 들어가게 된다.

살짝 설명해보자면
"작업한 기술구현 내용의 제목은 검색필터 기능추가(Feat: 검색필터)이고,
그 기술에 대한 상세 내용은
어떠한 상품을 검색 했을 때, 그 내용이 필터링이 되어
해당 단어를 포함하고 있는 상품 데이터만
화면에 랜더링 될 수 있도록 구현했습니다."
를 문어체로 짧게 작성한 것이다.

 

커밋 메시지의 핵심은, 서로 협의한 컨벤션을 지키며 핵심만 전달할 것.

길게 구구절절 적는 것은 pr을 작성할 때 상세히 적어도 되니, 커밋 메시지를 작성 할 땐
짧게 핵심만 작성하는 것을 대체로 권장하고있다.
(내가 검색해본 바로는...)

 


 

검색해서 찾아보니 여러가지 형태로 입력을 하던데,
가령 이런 이모지(ex.🔨📌📍🚨🚧☄️)들을 커밋 메시지 제목 가장 앞에 입력해
그림으로도 상황 인지를 할 수 있게끔 진행하는 컨벤션도 있는 것 같지만,
개인적인 생각으로는 저 이모지를 외우거나 혹은 필요할 때 마다 찾아봐야 할 것 같아서
직관적인 장점이 있을 수 있겠지만 물리적으로 시간이 많이 필요할 것 같은 컨벤션 방법인 것 같아

현재 팀 내 컨벤션 방법은 문자만 작성하기로 협의 하였다.

 

다음은 플젝 진행에서 적극적으로 사용하고있는
github의 git project라는 기능에 관련된 글을 작성하려 한다!

반응형