gitcommitmessage ๋“ฑ๋กํ•˜๊ธฐ

๐Ÿค™๐Ÿผ ๊ธฐ๋Šฅ๋ณ„๋กœ ์ตœ๋Œ€ํ•œ ์ชผ๊ฐœ์–ด ์งœ๊ธฐ

Commit convention


################# (์œ„์— Type ์ž‘์„ฑ)
# 1. Type (๋Œ€๋ถ„๋ฅ˜)
#    - [FE]: ํ”„๋ก ํŠธ์—”๋“œ ๊ด€๋ จ ๋Œ€๋ถ„๋ฅ˜
#    - [BE]: ๋ฐฑ์—”๋“œ ๊ด€๋ จ ๋Œ€๋ถ„๋ฅ˜
#    - [INFRA]: ์ธํ”„๋ผ ๊ด€๋ จ ๋Œ€๋ถ„๋ฅ˜
#    - [MAIN]: ๋ฉ”์ธ ๊ด€๋ จ ๋Œ€๋ถ„๋ฅ˜
# [{Type}] {Subject Type} #{์ด์Šˆ ๋ฒˆํ˜ธ}: {Subject}
# ex) [FE] feat #21: ํšŒ์›์ •๋ณด ์ˆ˜์ • ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€
# ex) [BE] feat #22: ํšŒ์›์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„
# ex) [INFRA] deploy #23: ๋ฐฑ์—”๋“œ Jenkinsfile ์ž‘์„ฑ
# ex) [MAIN] docs #24: ํฌํŒ… ๋งค๋‰ด์–ผ ์ž‘์„ฑ
################
# 1-1. Subject Type
#   - design:  UI์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š” ๊ฒฝ์šฐ
#   - deploy: ๋ฐฐํฌ์™€ ๊ด€๋ จ๋œ ์ปค๋ฐ‹ 
#   - docs: readme.md, json ํŒŒ์ผ ๋“ฑ ์ˆ˜์ •
#   - feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„
#   - fix: ์˜ค๋ฅ˜ ์ˆ˜์ •
#   - refactor: ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
#   - setting: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•๊ณผ ๊ด€๋ จ๋œ ์ปค๋ฐ‹
#   - style: ์ฝ”๋“œ์— ๋ณ€ํ™”๊ฐ€ ์—†๋Š” ์ˆ˜์ • ( ๋ณ€์ˆ˜๋ช…, ์˜คํƒ€, ์„ธ๋ฏธ์ฝœ๋ก  ๋“ฑ)
#   - test: ํ…Œ์ŠคํŠธ์ฝ”๋“œ ๊ด€๋ จ ์ปค๋ฐ‹
# 1-2. Subject
#   - 50๊ธ€์ž๋ฅผ ๋„˜์ง€ ์•Š๋„๋ก ์ž‘์„ฑ
#   - ๋งˆ์นจํ‘œ ๋ฐ ํŠน์ˆ˜๊ธฐํ˜ธ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
#   - ์ œ๋ชฉ์€ ์™„์ „ํ•œ ์„œ์ˆ ํ˜• ๋ฌธ์žฅ์ด ์•„๋‹ˆ๋ผ, ๊ฐ„๊ฒฐํ•˜๊ณ  ์š”์ ์ ์ธ ์„œ์ˆ ์„ ์œ„ํ•ด ๊ฐœ์กฐ์‹ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉ
################(์•„๋ž˜๋Š” ๊ณต๋ฐฑ ์œ ์ง€ : Type๊ณผ Body์˜ ๊ตฌ๋ถ„)

#################
# 1-2. Subject (์ œ๋ชฉ)
#    - 50๊ธ€์ž ๋„˜์ง€ ์•Š๋„๋ก ์ž‘์„ฑ
#    - ๋งˆ์นจํ‘œ ๋ฐ ํŠน์ˆ˜๊ธฐํ˜ธ ์‚ฌ์šฉ ๊ธˆ์ง€
#    - ์ œ๋ชฉ์€ ์™„์ „ํ•œ ์„œ์ˆ ํ˜• ๋ฌธ์žฅ์ด ์•„๋‹ˆ๋ผ, ๊ฐ„๊ฒฐํ•œ ์„œ์ˆ ์„ ์œ„ํ•ด ๊ฐœ์กฐ์‹ ๊ตฌ๋ฌธ ์‚ฌ์šฉ
#################

################# (์œ„์— Body ์ž‘์„ฑ)
# 2. Body (๋‚ด์šฉ)
# ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ์ž‘์—… ๋‚ด์šฉ์ด ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ์ƒ์„ธํ•œ ๋‚ด์šฉ์„ ๋‚จ๊ฒจ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ž‘์„ฑ
# ex) 
#    - ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
#    - ํšŒ์› ์ •๋ณด ์ˆ˜์ • api ์—ฐ๋™
#################
# 2-1. Body ์ž‘์„ฑ ๊ทœ์น™
#    - ๋ณธ๋ฌธ์€ 72์ž ๋‚ด๋กœ ์ž‘์„ฑ
#    - ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ์ค„๋กœ๋„ ์ž‘์„ฑ ๊ฐ€๋Šฅ
#    - ์—ฌ๋Ÿฌ ์ค„์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•  ๋• "-"๋กœ ๊ตฌ๋ถ„ 
#    - ๋ณ€๊ฒฝ ๋‚ด์šฉ๋ณด๋‹ค ๋ณ€๊ฒฝ ์ด์œ ๋ฅผ ์ž‘์„ฑ (๋‚˜์ค‘์— ๋ดค์„ ๋•Œ ์ฝ”๋“œ ์ž‘์„ฑ ์ด์œ ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด)
#################

################# (์œ„์— Footer ์ž‘์„ฑ)
# 3. Footer (๊ผฌ๋ฆฌ๋ง)
# ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ์ฝ”๋“œ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ์ด์Šˆ ๋ฒˆํ˜ธ ๋˜๋Š” ์ฐธ์กฐ ๋งํฌ ๋“ฑ์„ ์ถ”๊ฐ€
# ex) ref #21: related to #23, #34
#################
# 3-1. Footer ์ž‘์„ฑ ๊ทœ์น™
#    - ์ด์Šˆ ํŠธ๋ž˜์ปค ID๋ฅผ ์ž‘์„ฑ
#    - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ์ ์„ ๋•Œ๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„
#################
# 3-2. Footer Type
#    - fix: ์ด์Šˆ ์ˆ˜์ • ์ค‘
#    - resolve: ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ–ˆ์„ ๋•Œ ์‚ฌ์šฉ
#    - ref: ์ฐธ๊ณ ํ•  ์ด์Šˆ๊ฐ€ ์žˆ์„ ๋•Œ ์‚ฌ์šฉ
#################
# ์ตœ์ข… ๋ฉ”์„ธ์ง€ ์˜ˆ์‹œ
# [FE] feat #21: ํšŒ์›์ •๋ณด ์ˆ˜์ • ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€
# (๊ณต๋ฐฑ ํ•„์ˆ˜)
#    - ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
#    - ํšŒ์› ์ •๋ณด ์ˆ˜์ • API ์—ฐ๋™
# (๊ณต๋ฐฑ ํ•„์ˆ˜)
# ref #21: related to #23, #34
#################
# ์ฐธ๊ณ ์‚ฌํ•ญ
#    - Type, Body, Footer์€ ๊ฐ๊ฐ ๊ณต๋ฐฑ ์ค„๋กœ ํ•œ์นธ์”ฉ ๋„์›Œ ์ž‘์„ฑ
#    - VS Code์—์„œ ์ปค๋ฐ‹ ์‹œ ๊ธ€์ž๊ฐ€ ๋ฐ€๋ฆฌ๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋Š”๋ฐ ๊ฒฐ๊ณผ๋ฌผ์—๋Š” ์˜ํ–ฅ X
#    - ^M์€ ์ธ์ฝ”๋”ฉ๋ฌธ์ œ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋ฌด์‹œํ•ด๋„ ๋ฌด๋ฐฉ
#################
# ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ํ…œํ”Œ๋ฆฟ ์ ์šฉ๋ฐฉ๋ฒ•
# 1. local์—์„œ ๋ช…๋ น์–ด ์ž…๋ ฅ
# $  git config --local commit.template .gitmessage.txt
# 2. commit (vim ๊ธฐ์ค€)
#    - "git add ."๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์ณ์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š” ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง€ ์˜์—ญ์— ์ถ”๊ฐ€
#    - "git commit"์„ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ์œ„์˜ ํ…œํ”Œ๋ฆฟ์ด ํ‘œ์‹œ
#    - ํ‚ค๋ณด๋“œ์—์„œ "s"๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ชจ๋“  ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์ž…๋ ฅํ•œ ๋’ค "esc"
#    - ":wq"๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ์ปค๋ฐ‹ ์™„๋ฃŒ
#################

โšก๏ธ Gitmoji ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ (+ ๊นƒ๋ชจ์ง€ ํˆด ์†Œ๊ฐœ)