[Git] 협업을 위한 Git Commit Convention
첫 프로젝트때 깃을 제대로 사용하지 못하고 느낀점이 많았는데 , 그래서 깃을 더 효율적으로 , 효과적으로 사용하기 위해 팀원들과 통일한 부분중 하나가 바로 깃 커밋 메세지 입니다. 그리고 그것을 정리해둔 깃 커밋 컨벤션에 대해 이야기하려고 합니다.
사용하게 된 계기
이전 프로젝트때, 커밋할때 메시지를 적어야 하는데 그냥 "~~~개발" 이정도로만 적기도 하고 , 한번에 여러개를 커밋하는 경우에는 "~~수정" 이러헤 모호하게 적었었는데, 나중에 꼭 찾아보게 되는 일이 생겼습니다. 하지만 대충 저렇게 적어두니까 어느부분 어느 파트인지 잘 모르니까 하나하나 다 찾아봐야하고 , 비교하기도 어려울 뿐만 아니라 다른 팀원이 확인하기도 어려웠습니다. 그러다보니 효율적인 협업이 불가능했습니다. 그래서 이번에는 효율적으로 코딩하기 위해 커밋 메세지를 통일하기로 했습니다.
메세지 구조
😎커밋 메세지 구조
😎[타입] : [제목]
😎[본문]
😎[푸터](생략 가능)
😎실제 사용한 커밋 메시지 구조
😎[타입](위치) : [내용]
흔히 쓰이는 구조에서는 제목 / 본문 / 푸터 세 부분으로 구성되어 있다.
- 타입에서는 무슨 작업을 했는지 키워드를 적고
- 제목에서는 보다 상세히 작업에 대해 간략하게 적는다.
- 본문에서는 어느 위치에서 무슨 작업을 했는지 왜 했는지 상세히 적는다.
- 푸터는 이슈 트래킹을 위해 적는데 , 생략 가능하다.
실제로 사용한 구조에서는 타입 , 위치 , 내용의 세 부분으로 구성되어 있었다.
- 타입에서는 무슨 작업을 했는지 키워드를 적고,
- 위치에서는 무슨 파일을 수정했는지를 적었다.
- 내용에서는 무슨 파일에서 어떤 작업을 했는지를 상세히 적었다.
타입
무슨 작업을 했는지를 키워드로 적는데 , 대표적으로 7가지의 태그가 가장 많이 사용된다.
- Feat : 새로운 기능 추가
- Fix : 오류 수정
- Docs : 문서 관련 수정
- Style : 코드 변화 없이 스타일만 수정
- Refactor : 코드의 리팩토링
- Chore : 빌드 / 패키지 수정
- Test : 테스트 코드 수정
위의 7가지의 태그가 대표적으로 사용되는데 , Feat / Fix / Refactor 를 가장 많이 사용한 것 같다. 사실 잘 모르는 것은 그냥 feat로 처리한 감도 없지않아 있다 ㅎㅎㅎ;
위치
코드를 수정했을 때 파일 위치를 적었다. 이 부분은 코치님에게 추천받은 방법인데 , 위치를 명시해 두니까 나중에 찾기가 편한 부분이 존재해서 금방금방 찾을 수 있어서 좋았다. 폴더/파일이름 혹은 그냥 파일이름을 적었다.
내용
어느 부분을 수정하고 , 어느 기능을 수정했는지를 적었다. 위치까지만 적었을 때도 충분하다고 생각했는데 , 생각보다 위치 변경 이후에도 여러 기능들이 존재해서 자세한 내용까지 나열하게 되니까 더 찾기가 쉬워졌다.
후기
제대로 된 기록과 그렇지 않은 기록에는 많은 차이가 있었다는걸 깊이 느꼈다. 사실 내가 맡은 부분이 온전히 독립된 기능이 아니고 다른 기능들과 연계되는 부분이 있었는데 , 깃의 기록들을 보면서 찾기도 쉬웠고 그러다보니 더 효율적인 코딩이 가능했다. 아는 만큼 깃이 쉬워지는 것 같고 , 점점 깃이 쉬워지는 것 같아서 기분이 좋았다. 하지만 아직은 조금 더 디테일이 필요할 것 같고 , 좀 더 자세히 기록하는 연습을 해야할 것 같다.
참고하면 좋을 페이지
http://karma-runner.github.io/6.3/dev/git-commit-msg.html
Karma - Git Commit Msg
In the repository we use and enforce the commit message conventions. The conventions are verified using commitlint with Angular config. The reasons for these conventions: # automatic generating of the changelog simple navigation through git history (e.g. i
karma-runner.github.io
https://overcome-the-limits.tistory.com/entry/협업-협업을-위한-기본적인-git-커밋컨벤션-설정하기
[협업] 협업을 위한 git 커밋컨벤션 설정하기
들어가며 어떻게 하면 협업을 더 잘할 수 있을까 고민하며 협업에 필요한 내용들을 계속 정리하고 있습니다. 앞으로 저와 함께 협업하는 팀원분들에게 도움이 되고 싶습니다. 이 글은 Udacity Git C
overcome-the-limits.tistory.com
https://determination.tistory.com/entry/깃-커밋-메시지-컨벤션Git-Commit-Message-Convention
깃 커밋 메시지 컨벤션(Git Commit Message Convention)
개인적으로 공부하면서 몇 개의 정말 소소한.. 작고 소중한.. 개인 프로젝트를 진행했었는데 이러한 프로젝트는 모두 '깃으로 형상관리를 해야지~~'라는 원대한 목표화 함께 깃허브에 업로드해
determination.tistory.com