demetoir/ALLGANS

커밋 메시지 규칙에 대한 논의

StarJade-Park opened this issue · 8 comments

ref link : https://item4.github.io/2016-11-01/How-to-Write-a-Git-Commit-Message/

  1. 제목과 본문을 빈 행으로 분리
  2. 제목 행을 50자로 제한
  3. 제목 행 처음에는 [한 일]을 대문자로 표기
    e.g) [UPDATE] WTF is that?
  4. 제목 행에는 마침표를 넣지 않음
  5. 제목 행 뒤에는 요약 문 넣을 수 있음(50자 이하)
  6. 본문은 80자 단위로 개행
  7. 마지막으로 변경된 파일들에 대한 이력 개시
[REFACTORING] 프로젝트 구조 개선

호출 모듈 간의 복잡성 개선을 위해 프로젝트 구조를 일부 변경함 (커밋에 대한 요약 50자 이하)
다른 예시)
Hotfix: setup.py의 경로 설정 기능이 bench시 적용되지 않음으로 비활성화
Modification: README를 markdown lint에 따라 일부 수정

foo.py에서 호출하는 모듈 dir_fast/bar.py와 env_set/path_flags.py의 복잡성 ~~~
(생략 가능)

해결된 부분에 대한 설명
(생략 가능)

커밋 내에 여러 가지 일을 포함하고 있으면
 - 다음과 같이 개조식으로 서술
 - 한 일 1
 - 한 일 2
 - ...

이슈 #123

파일 이력
modified:   README.md
new file:   setup.py

위와 같은 형태로 커밋 메시지 규칙을 설정하였으면 좋겠음.
의견 개진 바람.

[한 일]

FIX
HOTFIX
BUGFIX
ENHENCEMENT
REFACTORING
UPDATE
ADD
DEL

파일 이력

new file:
modified:
deleted:

커밋 메세지 상에서 자동으로 issue close 하는 방법
http://minsone.github.io/git/github-commits-closing-issues-via-commit-messages

issue 번호는 제목에 포함시키는게 더 좋을듯

파일 이력은 따로 밑에 추가로 넣을 필요 없을듯 어차피 로그 밑에 파일 바뀐거 나오니
내용에서 어떤 파일에서 어떤 클래스의 어떤 함수가 변경 되었다 를 표기해는 걸로 퉁치는게..

[한 일] 같은경우 제목에 포함하는 방식보다는 라벨 같은거를 달아서 하는 방식이 가장 좋을듯한데
다른 깃헙 커밋로그 보니 issue의 제목을 그대로 가져와서 사용하는 방식도 있었음.

무었을 했는지?, 어떻게 했는지?, 왜 했는지?
이 3가지 내용을 꼭 포함하면서 커밋하는 내용들은 원자적인 내용을 가져야 한다고 생각함
(원자적이다는 말은 리펙토링을 했으면 하나의 커밋내용에는 리펙토링한 내용만 가지고 있어야한다는 의미, 보통 함수 선언을 할때 1개의 동작 만해야한다는 원리랑 비슷)

fix issue #10  B 클래스의 C 함수구현을 변경

A버그는 D가 원인이기 때문에  E 구현하는것으로 변경함

이런식으로 한다던가

여러가지 형식을 만들어 장단을 비교해봐야할듯 하다

파일 이력 제외 동의.

이슈 번호는 PR 번호를 말하는 것인지?

마지막 문단은 동의 불가. 이슈 처리 및 PR 논의에서 충분히 가능함.
OOP를 과하게 적용하려는 시도와 유사하게 보임.

  1. 제목과 본문을 빈 행으로 분리
  2. 제목 행을 50자로 제한
  3. 제목 행 처음에는 [한 일]을 대문자로 표기
  4. 제목 행에는 마침표를 넣지 않음
  5. 제목 행 뒤에는 요약 문 넣을 수 있음(50자 이하)
  6. 본문은 80자 단위로 개행
  7. 마지막으로 변경된 파일들에 대한 이력 개시

pr #16 다음이 이슈 #17 인걸보니
깃헙에서 pr번호도 이슈번호랑 비슷하게 취급되는것 같음

수정 한번에 뭉터기로 커밋하니 커밋 제목을 짓기가 너무 힘듬
그냥 '클래스 개선' 이라고 제목 하고 밑에다 쓰면 로그에서 제목만 보이는데
나중에보면 뭐 고쳤는지 일일이 다 뒤져봐야함.(컨트롤 f 로 찾아지나?)
제 못난 제목짓기 실력을 탓하세요

p.s. 디자인 패턴책 읽고 리펙토링 하다가 자서 그런지도

내가 요약문을 사용하고자 하는 이유인데, 커밋 메시지 제목에는 대략적인 내용을 적음.
요약문에는 조금 더 구체적인 내용을 서술하고, 본문은 제목, 요약과 달리 제한 없으니 필요한 만큼 자유롭게 서술하면 됨.(80자 단위 개행은 제한이 아니잖아?)

제목행 앞에 PR 번호를 적는 것으로 충분하다고 생각함.

ㅇㅋ

  1. 제목과 본문을 빈 행으로 분리
  2. 제목 행을 50자로 제한
  3. 제목 행 처음에는 [한 일]을 대문자로 표기
  4. 제목 행에는 마침표를 넣지 않음
  5. 제목 행 뒤에는 요약 문 넣을 수 있음(50자 이하)
  6. 본문은 80자 단위로 개행
  7. 마지막으로 변경된 파일들에 대한 이력 개시
  8. 제목 행 처음에는 [PR, issue 번호]를 표기