commit은 버전을 확정 시키는 작업이지요
여러분들은
commit시 message를 어떻게 남기시나요?
누군가 정해주지 않더라도 경험상 체득할 수 있습니다
"왜", "언제"에 대한 이유는 경험상 알고있기에
"어떻게"에 대해 공유해보겠습니다
다음 사진은, 알고리즘 공부의 기록을 위한 commit 입니다
버전의 관리가 필요없고, 기록만을 위한 commit이기에 문제가 없지만
project에서는 경우가 다릅니다
여러개의 commit message가 쌓여있을때
원하는 버전으로 가기 위해서 commit을 확인해야하는데 message가 저렇다면 식은땀이 나겠죠?
그럼 commit시 message는 어떻게 남기는게 좋을까요?
당연하게도 해당 버전을 유추할 수 있는 설명을 써두어야 합니다
하지만 설명을 쓰는 방법이 존재합니다
혼자만 작업한다면 나만 알아볼 수 있으면 되지만
협업이나 원격 저장소에 공유한다면 타인이 봐도 알아볼 수 있어야 합니다
개인적으로는, 혼자 작업하는 project여도 양식 없이 message를 작성하는 것은 나쁜 습관이라 생각합니다
그때의 기분에 따라 message 구조가 바뀔 수 있고
내가 한 것이지만 내가 못 알아보는, 욕 나오는 상황이 나올 확률이 매우 높아집니다
책 "clean code" 중 이미지
따라서 "어떻게"에 대한 세계 공통 관습이 있을 것이라 추측 할 수 있습니다
추측하신대로, commit message에도 convention 이 존재합니다
commit message는 다음과 같이 구성됩니다
message structure |
---|
type: Subject |
공백 한 줄 |
body |
공백 한 줄 |
footer |
예시는 다음과 같습니다
"감이 오시나요?"
그 중 title은 가장 중요하다고 생각됩니다
github에서 볼 수 있는 화면
type: Subject가 보인다
아니, type: subject만 보인다...!
cf.
1. type 은 첫글자도 소문자로 쓰는건데 대문자로 썻네요...!
2. 처음 써본거라 길이에 대한 감과, 어느정도의 정보를 써야하는지에 대한 감이 없었네요...!
저도 올바른 개발자 문화에 동참하기 위해 차츰 보완해 나가겠습니다
원격 저장소(remote repository)인 github에서 보이는 화면입니다
commit message의 type: Subject 부분만 보이게 됩니다
local repository 에서의 git log를 봐도 마찬가지로 type: Subject 부분만 보이게 됩니다
이러한 성격때문에 type: Subject 부분은 title이라 불리며, 가장 중요한 부분이라 할 수 있겠습니다
"title은 가장 직접적이며, 소통에 있어서 가장 강력한 부분입니다!"
따라서 적당한 길이, 핵심적인 설명을 써야합니다
물론, 참여하는 조직의 convention이 존재 한다면 당연하게도 조직의 convention을 따라야 합니다
"말 그대로 convention 이니까요...!"
Python의 github 화면입니다
조금 다르긴 해도 Python의 조직이 갖고 있는 규칙성을 갖고 commit message를 구성하는 걸 볼 수 있습니다
https://meetup.toast.com/posts/106 한글 번역
https://cbea.ms/git-commit/ 원본