Git 커밋 메시지 작성법 포스팅을 읽고

주위사람들이 괜찮은 글이라면서 추천해준 포스팅이 있는데 몇가지 적용시키면 괜찮을것같은 내용이 있어서 남겨놓는다.
원본글은 https://item4.github.io/2016-11-01/How-to-Write-a-Git-Commit-Message/ 이다.

git의 commit message가 왜 중요한지는 다들 알고있을꺼라 생각한다.
해당 링크에서는 commit message가 왜 중요한지를 요약해서 설명하니 한번쯤 읽어보고 공감해보는것도 좋을것같다. 

본 내용에 들어가면 훌륭한 commit message를 작성하는 7가지 방법을 설명하는데 다음과 같다.



1. 제목과 본문을 빈 행으로 분리한다
2. 제목 행을 50자로 제한한다
3. 제목 행 첫 글자는 대문자로 쓴다
4. 제목 행 끝에 마침표를 넣지 않는다
5. 제목 행에 명령문을 사용한다
6. 본문을 72자 단위로 개행한다
7. 어떻게 보다는 무엇과 왜를 설명한다


우선 나는 git IDE를 사용한다. 주로 Sourcetree를 쓰고 요즘엔 gitkraken로 갈아타려고 한다.
그리고 대부분 그렇겠지만 github를 이용한다.
그럼 위의 7가지를 하나씩 살펴보자


1. 첫번째로 제목과 본문을 빈 행으로 분리한다. 

링크에서는 여러가지 git 명령어를 통해 제목만 볼 수 있기때문이 가장 큰것같다. 내가 생각하는 제목과 본문을 나누는 이유는 github에 있는데, 아래의 이미지를 보면 제목만 나와있고 본문을 보려면 우측에 `...` 을 클릭해야 볼 수 있다. 




이와같이 제목과 본문을 빈 행으로 구분해주면 github에서 쉽게 본문과 제목을 나눠서 볼 수 있기 때문에 나는 본문과 제목을 빈 행으로 분리시킨다.
사실 이런걸 의식해서 나누지는 않았었는데 sourcetree나 gitkraken을 사용하면 자동으로 적용되는 내용이다. 


gitkraken 에서 커밋로그를 작성하는 창


2. 두번째로는 행을 50자로 제한한다.

이건 링크를 보는것이 조금더 좋을것같다. 나도 저 의견에 동의하고 저렇게 사용한다. 그리고 50자 이상 넘어갈 일이 별로 없다. 

3. 세번째는 제목행의 첫글자는 대문자로 쓴다.

저건 잘 몰랐던 내용이다. 근데 생각해보면 당연한 내용이다... 내가 약한 부분이라고 생각하는게 영어인데, 저런 사소한것부터 지켜봐야겠다.


4. 네번쨰는 행 끝에 마침표를 넣지 않는다.

이건 잘 모르겠다. 세번째처럼 몰랐던 내용이라기 보단... 이건 개인의 취향이라고 생각한다. 라고 생각하기엔 유명한곳의 커밋로그를 보니 다 마침표가 없다. 이걸 지킬지 말지는 각자 생각해보면 될것같다.


5. 다섯번쨰는 제목 행에 명령문을 사용한다.

링크에서는 

Git 자체가 우리 대신 자동으로 커밋을 생성하는 경우, 명령조를 사용하기 때문 

이라고 했다. 물론 동의한다. 내생각은 저런 의미도 있지만 휠씬더 알아보기 편하다. 
불필요한 내용을 줄이고 전달하고자 하는 내용을 오해없이 전달하기엔 명령조가 훨씬 좋은것같다.


6. 여섯번째는 본문을 72자 단위로 개행한다.

이건 내가 IDE를 사용하고 있어서 그런지 전혀 불편함을 못느꼈던 부분이다. 근데 왜 72자인지도 사실 잘 모르겠다. 링크에서도 별 얘기가 없어서... 하지만 적절한 단위로 나누어 개행하는것은 가독성을 위해서도 중요한 일이다.


7. 마지막은 어떻게보다는 무엇과 왜를 설명한다.

이 글을 작성하는 이유는 이 마지막때문이다. 
나도 그랬고 프로젝트를 진행하다보면 커밋을 읽기 어려울때가 있다. 그땐 내가 아직 코드를 안봐서 이해가 안되는건가 싶었지만 생각해보니 이 이유가 더 큰것같다. 
잘 못쓴 커밋 로그를 살펴보면 어떻게 이 오류나 코드를 수정했는지에 대해서 쓴다. 이렇게 작성된 로그는 코드가 어떻게 수정된건지는 알 수 있지만 왜 그렇게 수정했는지 알 수 없다. 코드에서 중요한것은 왜 그렇게 수정했는지 작성자의 의도가 무엇인지이다. 따라서 커밋 로그를 작성할 떄는 무엇과 왜를 꼭 설명하도록 하자.



팁. 커멘드라인을 이용하고 IDE를 멀리하라

음... 이건 진짜 잘 모르겠다. 커멘드라인이 좋다는건 알겠다. 하지만 그에 못지않게 IDE도 훌륭한게 많이 있다. 원리를 모르고 사용하는 IDE는 않좋지만 내용을 알고 사용하는 IDE는 좋다고 생각한다. 훨씬 생산성도 있고 관리하기도, 보기도 쉽다. 그래서 이부분은 사실 잘 모르겠고 와닿지도 않는다ㅠ


결론적으론 커밋로그를 신경써서 잘 작성하도록하자 이다.

댓글

이 블로그의 인기 게시물

IntelliJ로 Swing 개발하기 #1

Android Emulator 키보드 사용 설정

Android layout_marginStart와 layout_marginLeft의 차이