Skip to content

๐Ÿ“œStandard guideline of the git system for cooperation๐Ÿ› ๏ธ

Notifications You must be signed in to change notification settings

ForestHouse2316/CommitRule

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CommitRule

โš ๏ธNoticeโš ๏ธ
  • ๋ณธ Repository ๋Š” ๊ณต๋™๊ฐœ๋ฐœ(ํ˜‘์—…) ์‹œ ์‚ฌ์šฉ๋˜๋Š” Git ์‹œ์Šคํ…œ์˜ ์‚ฌ์šฉ ํ‘œ์ค€์„ ์‚ฌ์ „์— ์ž‘์„ฑํ•œ ๊ฒƒ์ด๋ฉฐ ๊ฐ ๊ฐœ๋ฐœ๋งˆ๋‹ค Fork ๋˜๋Š” Clone ํ•˜์—ฌ ๋‚ด์šฉ์„ ํŒ€์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
    Clone ํ›„ ์•„๋ž˜ ๋ผ์ด์„ผ์Šค๋ฅผ ์ค€์ˆ˜ํ•˜๋Š” ๋ฒ”์œ„ ๋‚ด์—์„œ ์ž์œ ๋กญ๊ฒŒ public/private repository์— ์‚ฌ๋ณธ์„ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณธ ๊ฐ€์ด๋“œ๋ผ์ธ์˜ ๊ถ๊ทน์ ์ธ ๋ชฉ์ ์€ Git ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ํšจ์œจ์ ์ด๊ณ  ๊ฐ€๋…์„ฑ์ด ๋†’์€ ๊ฐœ๋ฐœ ์ด๋ ฅ์„ ๋‚จ๊ธฐ๊ณ  ํŒ€์› ๊ฐ„ ํ˜‘์—…์ด ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์— ์žˆ๋‹ค.
  • ๋ณธ ๊ฐ€์ด๋“œ๋ผ์ธ์€ ์˜๋ฆฌ๋ชฉ์ ์— ๊ด€ํ•œ ์ œํ•œ ์—†์ด ๋ˆ„๊ตฌ๋“  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ณธ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ฑ„์šฉํ•˜์—ฌ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์˜ ์ฑ…์ž„์€ ์‚ฌ์šฉํ•œ ๊ฐœ์ธ ๋˜๋Š” ๋‹จ์ฒด์— ์žˆ๋‹ค.
  • ๋ณธ ๊ฐ€์ด๋“œ๋ผ์ธ์€ CC-BY-SA ๋ผ์ด์„ผ์Šค ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.
    ์‚ฌ์ ์ธ ๋ชฉ์ ์œผ๋กœ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ cc-by ์กฐํ•ญ์€ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋ฉฐ, ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ ๋“ฑ ๊ณต๊ณต์˜ ๋ชฉ์ ์œผ๋กœ ์ด์šฉ ์‹œ์—๋Š” ๋ณธ๋ฌธ์˜ ๋งํฌ๋ฅผ ๊ธฐ์žฌํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
    ์ด๋Š” repository์˜ ๊ณต๊ฐœ๋ฒ”์œ„์ธ public/private ๊ณผ๋Š” ๋ณ„๊ฐœ์˜ ๋‚ด์šฉ์ด๋‹ค.

Preparations

Branch

Types of branches in Git-Flow

Git-Flow ๋ฐฉ์‹์˜ ์ด๋ ฅ๊ด€๋ฆฌ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ 5๊ฐ€์ง€ ๋ธŒ๋žœ์น˜๊ฐ€ ์กด์žฌํ•œ๋‹ค.

โ“‚๏ธ main

master ๋กœ๋„ ๋ถˆ๋ฆฌ๋Š” ๋ธŒ๋žœ์น˜๋กœ ๋ฐฐํฌ์™€ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค.

  • โš ๏ธ ๋ฐ˜๋“œ์‹œ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์˜ ์ปค๋ฐ‹๋งŒ์ด ์กด์žฌํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
    ์ฆ‰ main ์˜ ๊ฐ ์ปค๋ฐ‹์€ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฒ„์ „์„ ๋‚˜ํƒ€๋‚ธ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ› ๏ธ develop

feature์—์„œ ๊ฐœ๋ฐœํ•œ ๊ธฐ๋Šฅ๋“ค์ด ํ†ตํ•ฉ๋œ๋‹ค.

  • โš ๏ธ feature ๋ธŒ๋žœ์น˜ merge ์‹œ ๋ฐ˜๋“œ์‹œ --no-ff ์˜ต์…˜์„ ํ†ตํ•˜์—ฌ develop ๋ธŒ๋žœ์น˜๊ฐ€ feature ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•ด fast-forward ํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.
  • develop ๋ธŒ๋žœ์น˜์— ์ด๋ฒˆ ๋ฒ„์ „์— ํ•„์š”ํ•œ feature ๋ธŒ๋žœ์น˜๋“ค์ด ๋ชจ๋‘ merge ๋˜๊ณ  ๋ฒ„๊ทธ๋ฅผ ๊ณ ์ณค๋‹ค๋ฉด release ๋ธŒ๋žœ์น˜๋กœ merge ์‹œํ‚จ๋‹ค.

โœจ feature/name

๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ๊ฐœ๋ฐœ์ด ์ด๋ฃจ์–ด์ง„๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ develop ๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐ๋˜์–ด์ง„๋‹ค.
feature/garbage-collection ๊ณผ ๊ฐ™์ด ๊ธฐ๋Šฅ์˜ ์ด๋ฆ„์„ ์ ๋Š”๋‹ค.

  • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ, ๋ฒ„๊ทธ ์ˆ˜์ •์ด ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋ถ„๊ธฐํ•œ๋‹ค.
  • ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ๋ณ„๋กœ ๊ฐ๊ฐ์˜ feature ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ ๋‹ค.
  • โ„น๏ธ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ณต์œ ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋กœ์ปฌ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํŒ€์›๊ณผ์˜ ๋‚ด์šฉ ๊ณต์œ ๋Š” develop ์— ์™„์„ฑ๋œ ๊ธฐ๋Šฅ์„ merge ํ•จ์œผ๋กœ์จ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    ํŒ€์— ๋”ฐ๋ผ feature ๋ธŒ๋žœ์น˜๋ฅผ push ํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.

โžก๏ธ release/version

develop ๋ธŒ๋žœ์น˜์—์„œ ๋ฐฐํฌ ์‹œ์ ์œผ๋กœ ์‚ผ๊ณ ์ž ํ•˜๋Š” ์ปค๋ฐ‹์—์„œ ๋ถ„๊ธฐํ•˜์—ฌ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ผ๋ จ์˜ ์ž‘์—…์„ ๊ฑฐ์นœ๋‹ค.
์ตœ์ข… ํ…Œ์ŠคํŠธ, ๋ฒ„๊ทธ์ˆ˜์ •, ๋ฒ„์ „ ๊ด€๋ จ ๋ฌธ์„œ์ž‘์„ฑ(์—…๋ฐ์ดํŠธ ๋กœ๊ทธ ๋“ฑ) ๊ณผ ๊ฐ™์€ ์ž‘์—…๋“ค์ด ํฌํ•จ๋œ๋‹ค.
๋ฒ„์ „์€ ๋ฐฐํฌ ๋ฒ„์ „์„ ์ ๋Š”๋‹ค. (release/1.0)

  • release ๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹๋˜๋Š” ์‹œ์ ๋ถ€ํ„ฐ ๋ฐฐํฌ ์‚ฌ์ดํด์ด ์‹œ์ž‘๋œ๋‹ค.
    ์ž‘์—…์ด ๋๋‚˜๋ฉด main ๋ธŒ๋žœ์น˜์— merge ํ•˜๊ณ  ๋ฐฐํฌ๊ฐ€ ์ด๋ค„์ง„๋‹ค.
  • ๋ฐฐํฌ ์ค€๋น„ ๊ณผ์ •์—์„œ ์ด๋ฃจ์–ด์ง„ ๋ฒ„๊ทธ์ˆ˜์ • ๋“ฑ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋ฐฐํฌ ํ›„ ๋‹ค์‹œ develop ๋ธŒ๋žœ์น˜๋กœ meger ํ•˜์—ฌ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.
  • โš ๏ธ develop ์—์„œ ๋ถ„๊ธฐ ์ดํ›„์—๋Š” ํ•ด๋‹น ๋ฐฐํฌ์™€ ๊ด€๋ จ๋˜์ง€ ์•Š์€ ์ž‘์—…์€ release ๋ธŒ๋žœ์น˜๋กœ merge ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๐Ÿšจ hotfix/version

๋ฐฐํฌํ•œ ๋ฒ„์ „์— ๋Œ€ํ•˜์—ฌ ๊ธด๊ธ‰ํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ด์šฉํ•œ๋‹ค.
๋ฒ„์ „์€ ๋ถ„๊ธฐ๋œ ๋ฐฐํฌ ๋ฒ„์ „์˜ ๋‹ค์Œ ๋ฒ„์ „์„ ์ ๋Š”๋‹ค. (0.1 ๋ฒ„์ „์—์„œ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ hotfix/0.2 ์™€ ๊ฐ™์ด ์ž‘์„ฑ)

  • main ์—์„œ ๋ถ„๊ธฐํ•˜์—ฌ ์ˆ˜์ •์„ ์š”ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ์ˆ˜์ • ํ›„ ๋‹ค์‹œ merge ์‹œํ‚จ๋‹ค.
    ์ดํ›„ ๋ฐ”๋กœ develop ๋ธŒ๋žœ์น˜์—๋„ merge ์‹œํ‚จ๋‹ค.
  • โ„น๏ธ ๊ธด๊ธ‰ํ•˜์ง€ ์•Š์€ ๋ฒ„๊ทธ ์ˆ˜์ •์€ ๋‹ค์Œ ๋ฒ„์ „์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

Cleaning branches

ํ•ญ์‹œ ์œ ์ง€๋˜๋Š” ๋ธŒ๋žœ์น˜์ธ main ๊ณผ develop ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ธŒ๋žœ์น˜๋Š” merge ์ดํ›„ ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์‚ญ์ œํ•˜๊ฒŒ ๋œ๋‹ค.
๋‹จ ํ˜น์‹œ ๋ชจ๋ฅผ ์ƒํ™ฉ์— ๋Œ€๋น„ํ•˜์—ฌ merge ํ›„ ๋‹ค์Œ ๋ฒ„์ „, ๋˜๋Š” ํŒ€์ด ์ •ํ•œ ๊ธฐ๊ฐ„ ์ดํ›„์— ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

Workflow

git ์‚ฌ์ดํŠธ์—์„œ ์†Œ๊ฐœํ•˜๋Š” 3๊ฐ€์ง€ ๋ฐฉ์‹์˜ workflow ๊ฐ€ ์žˆ๋‹ค.

Centralized Workflow


ํ•˜๋‚˜์˜ repository ๋ฅผ ๊ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ clone ํ•˜์—ฌ ์‚ฌ์šฉ, ์ž‘์—…์€ ๋ธŒ๋žœ์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

Integration-Manager Workflow


ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋Š” ๊ฒฝ์šฐ, ๊ฐ ๊ฐœ๋ฐœ์ž์˜ ์ž‘์—…์ด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์™€ ๊ฒน์น˜์ง€ ์•„๋‹ˆํ•  ๋•Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•.
์ƒ์œ„ repository ๋ฅผ ๊ฐ๊ฐ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ fork ํ•˜์—ฌ private repository ๋ฅผ ๋งŒ๋“ค๊ณ ,
์ด๋ฅผ clone ํ•˜์—ฌ local repository ๋ฅผ ๋งŒ๋“ ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ Centralized Workflow ์™€ ๋™์ผํ•œ ๋ธŒ๋žœ์น˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉฐ, ๊ฐœ์ธ๋ณ„

Dictator and Lieutenants Workflow


GitHub-flow ๊ธฐ๋ฐ˜์˜ ๊ณต๊ฐœ repository ์™€ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์—์„œ ์œ ์šฉํ•œ ๋ฐฉ์‹.
์ดˆ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Commit

Commit interval

Commit message

๊ธฐ๋ณธ์ ์ธ ์–‘์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค : TAG: message ๋˜๋Š” [TAG] message ๋˜๋Š” โœจ message
ํŒ€์— ๋งž๋Š” ์‚ฌ์šฉ๋ฒ•์„ ๊ณจ๋ผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.

  • TAG๋Š” ํ•ด๋‹น ์ปค๋ฐ‹์˜ ํƒ€์ž…์œผ๋กœ, ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฌด์—‡๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์ธ์ง€ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • message๋Š” ํ•ด๋‹น ์ปค๋ฐ‹์˜ ๋‚ด์šฉ์œผ๋กœ, ์ผ์ข…์˜ title ์— ํ•ด๋‹นํ•œ๋‹ค.
  • message ์—๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์— ๋Œ€ํ•œ ์š”์•ฝ์„, ์„ธ๋ถ€์ ์ธ ์‚ฌํ•ญ์€ content ์— ์ ๋Š”๋‹ค (content๋Š” ํ•„์š” ์‹œ ์„ ํƒ์ ์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค).\

โ„น๏ธ JetBrains ๊ณ„์—ด IDE ์˜ ๊ฒฝ์šฐ, ์—”ํ„ฐ๊ฐ€ ์—ฐ์†ํ•˜์—ฌ 2๋ฒˆ ์ž…๋ ฅ๋œ ์ง€์ ์˜ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ถ€ํ„ฐ content ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค :

[TAG] Message of the commit.
This line is still in the message section.

Here's the content section of our commit.

TAG (emoji)

TAG ์œ„์น˜์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํƒœ๊ทธ๋“ค์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

TAG emoji Use when
Feat โœจ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์˜ ์ถ”๊ฐ€
Fix ๐Ÿ› ๋ฒ„๊ทธ ์ˆ˜์ •
Patch ๐Ÿฉน ์‚ฌ์†Œํ•œ ๋ฒ„๊ทธ, ๋ฐธ๋Ÿฐ์Šค, ๊ณ„์‚ฐ์‹, ์ƒ์ˆ˜๊ฐ’ ์ˆ˜์ •
Refactor โ™ป๏ธ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง (์ตœ์ ํ™”๋Š” Opt ์ด์šฉ)
Opt โšก ๋กœ์ง ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™” (๋‹จ์ˆœ ์œ ์ง€๋ณด์ˆ˜๋Š” Refactor ์ด์šฉ)
Style ๐ŸŽจ ๋กœ์ง์ƒ ๋ณ€๊ฒฝ์ด ์—†๋Š” ์ฝ”๋“œ format, structure, ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ
Test ๐Ÿงช Test ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ž‘์—…
Docs ๐Ÿ“ Readme, ์„ค๋ช…์„œ, ์ฝ”๋“œ doc ๊ด€๋ จ ์ž‘์—… (๋ฆฌ์†Œ์Šค ์ œ์™ธ)
Res ๐Ÿ“ฆ ์˜์กด์„ฑ ์žˆ๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ํŒŒ์ผ ๋ฐ ๋นŒ๋“œ (์ด๋ฏธ์ง€, JSON, .exe ๋“ฑ)
Dep ๐Ÿ”Œ ์˜์กด์„ฑ ์ž‘์—… (์ถ”๊ฐ€ / ์‚ญ์ œ / ๋ฒ„์ „๋ณ€๊ฒฝ)
CI ๐Ÿ”ƒ๏ธ CI ๊ด€๋ จ ์ž‘์—…
Merge ๐Ÿ”€๏ธ Merge ๊ด€๋ จ ์ž‘์—…
Revert โช ๋ณ€๊ฒฝ์‚ฌํ•ญ Revert
Cherry ๐Ÿ’๏ธ Cherry-pick ์ˆ˜ํ–‰
Git ๏ธ๐Ÿˆ ๊ธฐํƒ€ Git ๊ด€๋ จ ์ž‘์—…
Rename โœ๏ธ ํŒŒ์ผ, ํด๋”๋ช… ๋ณ€๊ฒฝ
Clean ๐Ÿงน Redundant ํ•œ ์ฝ”๋“œ, ์ฃผ์„, ํŒŒ์ผ ๋“ฑ์˜ ์ œ๊ฑฐ
Chore โžฟ ๊ธฐํƒ€ ์ค‘์š”๋„๊ฐ€ ๋‚ฎ์€ ์ž‘์—… ๋ฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ (typo ์ˆ˜์ •, ๋‹จ์ˆœ comment ์ถ”๊ฐ€)

โ„น๏ธ TAG ์™€ ๋Œ€์‘๋˜๋Š” emoji ๋Š” carloscuesta์˜ gitmoji ๊ฐ€์ด๋“œ๋ผ์ธ์—์„œ ๊ฐ„์†Œํ™”ํ•˜์—ฌ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

โš ๏ธ ๋ณธ repository ์˜ ๋‚ด์šฉ์€ git hook ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ๊ธฐํ•œ emoji๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๊ธฐ์ค€์œผ๋กœ ์ ํ˜€์žˆ์Šต๋‹ˆ๋‹ค.
carloscuesta ์˜ gitmoji ๋ฐฉ์‹์€ ํ•˜๋‹จ์˜ Additional methods ์— ์ถ”๊ฐ€๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

๋ณธ repository ์— ์žˆ๋Š” ์ปค์Šคํ…€ prepare-commit-msg hook ์„ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ, :tag_name: ํ˜•ํƒœ๋กœ message ์ž‘์„ฑ ์‹œ ์ž๋™์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.
TAG์™€ ๋‹ฌ๋ฆฌ tag_name ์€ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•œ๋‹ค :

// example 1
//// Commit Message
:refactor: Refactor dialogue system

//// Ouput (on git log)
โ™ป๏ธ Refactor dialogue system

// example 2
//// Commit Message
:opt::patch: :Fix: [fix]

//// Ouput (on git log)
โšก๐Ÿฉน :Fix: [fix]
Additional methods

Double tagging (not recommended)

ํŒ€์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ [TAG1][TAG2] Message ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค :\

  • TAG1 ์„ ์ƒ์œ„ ๋ถ„๋ฅ˜, TAG2 ๋ฅผ ํ•˜์œ„ ๋ถ„๋ฅ˜๋กœ์„œ ์‚ฌ์šฉํ•œ๋‹ค.
  • TAG1 ๊ณผ TAG2 ์— ํ•ด๋‹นํ•˜๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ํ•ด๋‹น commit ์•ˆ์— ๋ชจ๋‘ ๋“ค์–ด์žˆ์Œ์„ ์˜๋ฏธ (์ด ๊ฒฝ์šฐ [TAG1][TAGn] Message ๋„ ๊ฐ€๋Šฅํ•˜๋‚˜, ๊ถŒ์žฅํ•˜์ง€ ์•„๋‹ˆํ•จ) ๊ฐ€๋…์„ฑ ์ธก๋ฉด์—์„œ ์ข‹์ง€ ๋ชปํ•˜๋ฏ€๋กœ ์ด์ค‘ํƒœ๊ทธ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ƒ์œ„-ํ•˜์œ„ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋งŒ ์ด์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

Gitmoji by carloscuesta

โ™ป๏ธ, โšก ๋“ฑ์˜ ์•„์ด์ฝ˜๋“ค์„ ์ด์šฉํ•˜์—ฌ ์ปค๋ฐ‹ ์œ ํ˜•์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ github ์ƒ์—์„œ ์ด๋ชจํ‹ฐ์ฝ˜์˜ ์ž‘์„ฑ์ด :emoji_name: ํ˜•ํƒœ๋กœ ๊ฐ€๋Šฅํ•œ ์ ์„ ์ด์šฉํ•œ๋‹ค. (Discord ์™€ ๋™์ผํ•œ ๋ฐฉ์‹)
์„œ์‹์€ ์•ž์„œ ์†Œ๊ฐœํ•œ git hook ๋ฒ„์ „์˜ gitmoji ์–‘์‹๊ณผ ๊ฐ™์ด TAG ์œ„์น˜์— ์ด๋ชจ์ง€๋ฅผ ๋Œ€์‹  ๋„ฃ๋Š” ๊ฒƒ์œผ๋กœ, โ™ป๏ธ Refactor dialogue system's control method ์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
carloscuesta์˜ gitmoji ๊ฐ€์ด๋“œ๋ผ์ธ์ด ์กด์žฌํ•˜๊ณ , ์ด๋ฅผ ์ž์‹ ์˜ ํŒ€์— ๋งž๊ฒŒ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

๋กœ์ปฌ์ƒ์—์„œ๋Š” ์ด๋ชจํ‹ฐ์ฝ˜์ด ์•„๋‹Œ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํ˜•ํƒœ(e.g. :zap:)๋กœ ๋ณด์ด๋ฏ€๋กœ ๋กœ์ปฌ์—์„œ ์‚ฌ์šฉ ์‹œ ์˜คํžˆ๋ ค ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋กœ์ปฌ์—์„œ๋Š” ๋ณธ repository์˜ gitmoji ๋ฒ„์ „์„ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ์•„๋ž˜์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค :

  1. TAG + emoji ์ž‘์„ฑ ์˜ˆ์‹œ :
  • ์ž‘์„ฑ : [Refactor] :recycle: Refactor dialogue system's control method
  • ๋กœ์ปฌ ๋‚ด ํ‘œ์‹œ : [Refactor] :recycle: Refactor dialogue system's control method
  • GitHub ๋‚ด ํ‘œ์‹œ : [Refactor] โ™ป๏ธ Refactor dialogue system's control method
  1. emoji ์ž‘์„ฑ ์˜ˆ์‹œ :
  • ์ž‘์„ฑ : โ™ป๏ธ Refactor dialogue system's control method
  • ๋กœ์ปฌ ๋‚ด ํ‘œ์‹œ : โ™ป๏ธ Refactor dialogue system's control method
  • GitHub ๋‚ด ํ‘œ์‹œ : โ™ป๏ธ Refactor dialogue system's control method

โ„น๏ธ JetBrains ์‚ฌ์˜ IDE ์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ gitmoji plugin ์˜ ์˜ต์…˜์„ ํ†ตํ•ด
carloscuesta์˜ gitmoji ๊ฐ€์ด๋“œ๋ผ์ธ ์ƒ์˜ ์›ํ•˜๋Š” ์ด๋ชจ์ง€๋ฅผ :emoji_name: ๋˜๋Š” ๐Ÿ˜Ž ํ˜•ํƒœ๋กœ ๋ฐ”๋กœ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

message

  • ์ปค๋ฐ‹๋ฉ”์‹œ์ง€๋Š” 50์ž ์ด๋‚ด๋กœ ์ž‘์„ฑํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
  • ๋ณ„๋„์˜ ์„ธ๋ถ€ ๋‚ด์šฉ์€ content ์— ๋”ฐ๋กœ ์ ๋„๋ก ํ•œ๋‹ค.
  • ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•œ๋‹ค. ๋ฉ”์‹œ์ง€์˜ ์‹œ์ž‘์€ ๋™์‚ฌ ์›ํ˜•์„ ์‚ฌ์šฉํ•œ๋‹ค.
    ๋™์‚ฌ make ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ, [TAG] Make... ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค.
    make, Making, Makes, Made ๋ชจ๋‘ ์ž˜๋ชป๋œ ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค.

content

  • ์ปค๋ฐ‹์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ถ”๊ฐ€์ ์œผ๋กœ ๊ธฐ์ˆ ํ•ด์•ผํ•˜๋Š” ๋‚ด์šฉ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ปค๋ฐ‹์˜ content๋Š” ํ•ด๋‹น ์ปค๋ฐ‹์„ ์„ ํƒํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉฐ, ์ปค๋ฐ‹ ์„ธ๋ถ€์‚ฌํ•ญ ์กฐํšŒ ์‹œ ํŒŒ์ผ ๋ณ€๊ฒฝ์‚ฌํ•ญ๊ณผ ํ•จ๊ป˜ ๋‚ด์šฉ์ด ๋‚˜ํƒ€๋‚œ๋‹ค (GitHub/๋กœ์ปฌ ๋ชจ๋‘ ํ•ด๋‹น)
  • ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ค‘์š”ํ•œ ๋‚ด์šฉ์€ message ๋‹จ์—์„œ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

Develop

Develop process

Interface & AbstractClass for co-working

Documenting & Commenting

Doc

Doc ์€ ๋ฉ”์„œ๋“œ, ๋ณ€์ˆ˜ ๋“ฑ์— ์„ค๋ช…์„ ๋ถ™์—ฌ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‹œ ๋†’์€ ๊ฐ€๋…์„ฑ์„ ์ œ๊ณตํ•˜๊ณ  IDE ์—์„œ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
// or /// or /** Content */ or # ๋“ฑ์„ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
Doc ๋ฐฉ์‹์€ ์–ธ์–ด๋งˆ๋‹ค ๋‹ค๋ฅด๋ฏ€๋กœ ๋ฌธ๋ฒ•์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
๋ชจ๋“  ๋ฉค๋ฒ„๋“ค์ด Doc์„ ๊ฐ€์งˆ ํ•„์š”๋Š” ์—†์œผ๋‚˜, ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋ณด๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๋ฉค๋ฒ„์—๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋œ๋‹ค.

Doc์„ ์ž‘์„ฑํ•œ๋‹ค๋ฉด, ๋‹ค์Œ ์‚ฌํ•ญ๋“ค์„ ์ถฉ์กฑ์‹œํ‚ค๋„๋ก ํ•œ๋‹ค :

  • ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ, Property(ํ”„๋กœํผํ‹ฐ) ๊ฐ€ ํ•˜๋Š” ์—ญํ• ๊ณผ ์ž‘์—…์„ ์ ๋Š”๋‹ค.
    ์ด๋ฆ„์„ ๋ณด๊ณ  ์ถฉ๋ถ„ํžˆ ์œ ์ถ”๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ƒ๋žตํ•ด๋„ ์ข‹๋‹ค. (e.g. GetText)
  • ์ƒ๊ธฐํ•œ ์—ญํ• ๊ณผ ์ž‘์—… ์ค‘ ๋ฐ˜๋“œ์‹œ ์•Œ์•„๋‘์–ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์„ ์ ๋Š”๋‹ค.
    (e.g. GetAccumulatedValue() ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ๊ณผ ๋™์‹œ์— ํŠน์ • ๋ณ€์ˆ˜์˜ ๊ฐ’์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ)
  • Parameter(๋งค๊ฐœ๋ณ€์ˆ˜), GenericType(๊ฐ€๋ณ€ํƒ€์ž…, ํƒ€์ž…๋ณ€์ˆ˜) ๋“ฑ์ด ๋ฌด์—‡์„ ํ•„์š”๋กœ ํ•˜๋Š”์ง€ ๋ช…์‹œํ•œ๋‹ค.
    ๋งŒ์ผ int id ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์„ ๊ฒฝ์šฐ ๋ฌด์—‡์˜ id ์ธ์ง€, ๋ฌด์—‡์— ๊ทผ๊ฑฐํ•œ id ์ธ์ง€ ๋ช…์‹œํ•œ๋‹ค.
  • ๋ช…์‹œ์ ์œผ๋กœ ์˜ˆ์™ธ๋ฅผ throw ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์˜ˆ์™ธ์˜ ๋ฐœ์ƒ ์กฐ๊ฑด์„ ๋ช…์‹œํ•œ๋‹ค.
  • ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ, ํด๋ž˜์Šค ๋“ฑ๊ณผ ์œ ๊ธฐ์ ์ธ ๊ด€๊ณ„๋ฅผ ๋งบ๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๋ฐ”๋กœ๊ฐ€๊ธฐ๋ฅผ ์ ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
    (ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์ง€์›๋˜๋Š” Doc์„ ๊ฐ€์ง„ ์–ธ์–ด์— ํ•œํ•จ)

Comment

// or # ๋“ฑ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์„ ๋”ฐ๋ฅธ๋‹ค.
Comment-block ๋„ ์กด์žฌํ•˜๋‚˜, ๋˜๋„๋ก์ด๋ฉด One-line comment ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ ๋„๋ก ํ•œ๋‹ค. :

// This is comment.
// You may use comment block, but try not to use it.
// Because we'll use it to write "Important Comment" 

์ด์™€ ๊ฐ™์ด ์ฃผ์„ ๋ธ”๋Ÿญ์˜ ์‚ฌ์šฉ์„ ์ œํ•œํ•˜๋Š” ์ด์œ ๋Š” ํ›„์ˆ ํ•  Important comment ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

TODO

// TODO Content or # TODO Content ๋“ฑ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์„ ๋”ฐ๋ฅธ๋‹ค.
์œ„์™€ ๊ฐ™์ด ์ ์„ ๊ฒฝ์šฐ, ์ผ๋ถ€ IDE๋Š” TODO List ๋กœ ๋ชจ์•„์„œ ํ‘œ๊ธฐํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.
์ถ”๊ฐ€์ ์œผ๋กœ ์ž์‹ ๋งŒ์˜ TAG ๋ฅผ ๋ถ™์—ฌ // TODO TAG Content ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ๋„ ์ข‹๋‹ค.
(e.g. // TODO SYNC Remove this, // TODO FOREST Optimize logic)

Important comment

/* Content */ or /** */ or ''' Content ''' ๋“ฑ์˜ ๋ธ”๋Ÿญ ์ฃผ์„์„ ์ด์šฉํ•œ๋‹ค.
์ด๊ณณ์— ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์ˆœ์„œ, ๊ฐ’ ํ• ๋‹น ์‹œ ์ฃผ์˜์  ๋“ฑ ์ฝ”๋“œ ๋‚ด์šฉ์„ ๊ฑด๋“œ๋ฆด ๋•Œ ์ฃผ์˜ํ•˜์—ฌ์•ผ ํ•˜๋Š” ๋ถ€๋ถ„๋“ค์„ ๋ช…์‹œํ•œ๋‹ค.
๋˜ํ•œ ํŒ€์› ๊ฐ„ ๋ธ”๋Ÿญ ์ฃผ์„์„ ์ค‘์š” ๋‚ด์šฉ ํ‘œ๊ธฐ์— ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•ฉ์˜ํ•œ ๊ฒฝ์šฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด IDE Color scheme ์„ค์ •์„ ๋ฐ”๊พธ๋ฉด ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค :

Debug & Fix

Log & Analyzing logs

Default log message shape setting

Recommended log message shape

Links

๋ณธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ๋‚ด์šฉ๊ณผ ๊ด€๋ จ๋œ ๋ถ€๋ถ„๋“ค์€ ๋“ค์—ฌ์“ฐ๊ธฐ๋กœ ๊ฐ•์กฐํ‘œ์‹œ ํ•˜์˜€๋‹ค.

Development

โœ๏ธCommit message rule reference
โ™พ๏ธSW release lifecycle
๐Ÿ˜ŽGitmoji by carloscuesta
๐ŸŒณKinds of branches in Git-Flow
๐Ÿ”€Merge methods

๐Ÿ“ฅStash/Shelve Difference
โญ•Conventional Commits

GitHub MarkDown

๐Ÿ“œGitHub MD Syntax

โน๏ธGitHub shield badge site

Utils

๐Ÿ›ŸGitHub server status

About

๐Ÿ“œStandard guideline of the git system for cooperation๐Ÿ› ๏ธ

Topics

Resources

Stars

Watchers

Forks