이 영역을 누르면 첫 페이지로 이동
lucid_dream 블로그의 첫 페이지로 이동

lucid_dream

페이지 맨 위로 올라가기

lucid_dream

다양한 상상을 현실로 만드는 멀티 크리에이터를 꿈꾸고 있습니다 ❤️

느낌 있는 Commit Message 작성하기

  • 2021.09.25 13:29
  • 🌈 기술스택/Git
글 작성자: NoHack
728x90

Commit Message

커밋(Commit)은 프로젝트 내의 어떠한 파일들에 변화가 있는 시점을 메시지와 함께 저장하는 기능입니다. 커밋 시점은 개발자마다 다릅니다만, 개인적으로는 코드를 기능별(Feature)로 쪼개서 수시로 커밋하는 것을 선호하는 편입니다. 한 번에 여러가지를 해 놓은 이후 커밋하는 것보다, 특정 기능이나 역할 변경에 대해서만 커밋을 남기면, 이후 코드 리뷰가 용이하고 해당 부분만 언급하기도 좋습니다. 만약 너무 많은 커밋으로 인해 로그(Log)가 지저분할 때는 Merge나 Rebase 명령으로로 정리하면 됩니다.

좋은 커밋 메시지

위 사진은 Alibaba Fusion이라는 곳의 저장소에서 가져온 커밋 히스토리입니다. 이 외에도 대형 서비스를 운영하고 있는 기업들의 깃허브에서 커밋 기록을 보면, 대부분 일관되고 직관적인 내용으로 메시지를 작성해 놓은 것을 확인할 수 있습니다. 이처럼 개발은 보통 혼자 하는 것이 아니기 때문에, 좋은 커밋 메시지를 남기는 것이 협업의 효율을 증진시키기 위해서라도 정말 중요합니다. 그렇다면 느낌 있는 커밋 메시지를 작성하기 위해서는 어떻게 해야 할까요?

좋은 커밋 메시지를 작성하기 위한 여러 방법론이 공개되어 있는데, 이들 중 일부를 정리해 봤습니다.

#
# Commit Message 기본 구조
#
<type>(<scope>): <subject>
<blank line>
<body>
<blank line>
(<footer>)

[ Subject ] type (커밋 종류)

  • feat: 새로운 기능 추가
  • fix: 버그 수정
  • docs: 문서 수정
  • style: 코드 스타일 변경 (코드 포매팅, 세미콜론 누락 등)
  • design: 사용자 UI 디자인 변경 (CSS 등)
  • test: 테스트 코드, 리팩토링 (Test Code)
  • refactor: 리팩토링 (Production Code)
  • build: 빌드 파일 수정
  • ci: CI 설정 파일 수정
  • perf: 성능 개선
  • chore: 자잘한 수정이나 빌드 업데이트
  • rename: 파일 혹은 폴더명을 수정만 한 경우
  • remove: 파일을 삭제만 한 경우
요즘은 정보 압축을 위해 이모지(gitmoji)를 사용하는 커밋 컨벤션도 있습니다.

[ Subject ] scope

  • 선택사항이며, 변경된 부분을 직접적으로 표기합니다.
  • EX) 함수가 변경되었으면 함수명, 메소드가 추가되었으면 클래스명 기입 등

[ Subject ] subject

  • 첫 글자는 대문자로 입력합니다.
  • 마지막에는 .(period)을 찍지 않습니다.
  • 영문 기준 최대 50자를 넘지 않습니다.
  • 제목은 명령문의 형태로 작성합니다. (동사원형 사용)

[ Body ]

  • 각 줄은 최대 72자를 넘지 않도록 합니다.
  • 어떻게 변경했는지보다, 무엇을 변경했고, 왜 변경했는지를 설명합니다.

[ Footer ]

  • 선택사항이며, 관련된 이슈를 언급합니다. Ex) Fixes: #1, #2
  • 주로 Closes(종료), Fixes(수정), Resolves(해결), Ref(참고), Related to(관련) 키워드를 사용합니다.
저는 개인 저장소에 커밋할 때는 '[feat] XX 구현', '[fix] XX 수정' 등으로 간단하게 작성합니다.

마무리하며

저는 영어를 잘하는 편이 아니라, 커밋 메시지를 작성할 때 어떻게 작성해야 할 지 항상 고민이 많았습니다. 하지만 커밋 메시지 작성에 대한 여러 방법론을 살펴 보고, 다양한 저장소의 커밋 히스토리들을 보면 엄청 어려운 단어가 사용된 메시지는 많지 않은 것을 알 수 있었습니다. 그래도 Implement, Update, Simplify 등 자주 등장하는 단어들이 있기 때문에, 이런 것들은 미리 알아두고 사용하시면 좋을 것 같습니다.

그래도 영어 공부 열심히 해 두면 좋겠지요 💦

References 📖

  • 좋은 git commit 메시지를 위한 영어 사전
  • 좋은 git commit 메시지를 작성하기 위한 7가지 약속
  • AngularJS Git Commit Message Conventions
  • Udacity Git Commit Message Style Guide
  • How to Write a Git Commit Message
저작자표시 비영리 동일조건 (새창열림)

'🌈 기술스택 > Git' 카테고리의 다른 글

Stash로 변경 이력 임시 저장하기  (0) 2021.10.24
Merge와 Rebase 알아보기  (0) 2021.10.24
프로젝트를 멋지게 설명하는 README.md  (0) 2021.09.25
Branch의 종류와 사용법  (0) 2021.09.25
코드 관리를 위한 Git & GitHub  (0) 2021.09.25

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • Merge와 Rebase 알아보기

    Merge와 Rebase 알아보기

    2021.10.24
  • 프로젝트를 멋지게 설명하는 README.md

    프로젝트를 멋지게 설명하는 README.md

    2021.09.25
  • Branch의 종류와 사용법

    Branch의 종류와 사용법

    2021.09.25
  • 코드 관리를 위한 Git & GitHub

    코드 관리를 위한 Git & GitHub

    2021.09.25
다른 글 더 둘러보기

정보

lucid_dream 블로그의 첫 페이지로 이동

lucid_dream

  • lucid_dream의 첫 페이지로 이동

검색

메뉴

  • All categories
  • About me
  • Guest Book

카테고리

  • 분류 전체보기 (122)
    • 💦 일상뻘글 (1)
    • ⭐️ 프로젝트 (7)
      • 사이드 프로젝트 (1)
      • 스터디 노트 (6)
    • 🌈 기술스택 (31)
      • Web Basic (10)
      • JavaScript (14)
      • React (0)
      • Git (7)
    • 💻 컴퓨터공학 (28)
      • 자료구조 (13)
      • 알고리즘 (7)
      • 운영체제 (4)
      • 소프트웨어 공학 (4)
    • 📝 문제풀이 (55)
      • 프로그래머스 (55)
      • 과제관 (0)
    • 🐹 취미생활 (0)
      • Film Log (0)
      • Cover Song (0)

댓글

정보

NoHack의 lucid_dream

lucid_dream

NoHack

나의 외부 링크

  • Github
  • Instagram

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © NoHack.

티스토리툴바