Skip to content

ikaruce/git-style-guide

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

52 Commits
ย 
ย 

Repository files navigation

Git Style Guide

How to Get Your Change Into the Linux Kernel์—์„œ ์˜๊ฐ์„ ๋ฐ›์€ Git ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค. Git ๊ณต์‹๋ฌธ์„œ์™€ ์œ ๋ช…ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฒฝํ—˜ํ•œ ๊ฒƒ์„ ์ ์–ด๋†จ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ๋Š” ์•„๋ž˜ ์–ธ์–ด๋กœ ๋ฒˆ์—ญ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•จ๊ป˜ ํ•˜๊ณ  ์‹ถ์œผ์‹œ๋ฉด, ์ž์œ ๋กญ๊ฒŒ ํ•˜์„ธ์š”. Fork ํ•˜์‹œ๊ณ  pull request ๋ณด๋‚ด์ฃผ์„ธ์š”.

๋ชฉ์ฐจ

  1. Branches
  2. Commits
  3. Messages
  4. Merging
  5. Misc.

Branches (๋ธŒ๋žœ์น˜)

  • ๊ฐ„๊ฒฐํ•˜๊ณ  ์ž˜ ์„ค๋ช…๋  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์„ ์„ ํƒํ•˜์„ธ์š”.

    # good
    $ git checkout -b oauth-migration
    
    # bad - ๋„ˆ๋ฌด ์• ๋งคํ•จ
    $ git checkout -b login_fix
  • ์™ธ๋ถ€ ์„œ๋น„์Šค(์˜ˆ๋ฅผ ๋“ค์–ด ๊นƒํ—™)์˜ ํ‹ฐ์ผ“(ํ• ์ผ)์— ํ•ด๋‹นํ•˜๋Š” ์ด๋ฆ„๋„ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์œผ๋กœ ์“ฐ๋Š”๋ฐ ์ข‹์€ ์˜ˆ์‹œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

    # GitHub issue #15
    $ git checkout -b issue-15
  • ๋‹จ์–ด๋ฅผ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ด์Œํ‘œ(-) ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

  • ๋ช‡๋ช…์˜ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด, ๊ฐœ์ธ์  ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜์™€ ํŒ€ ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€์ง€๊ณ  ์ž‘์—…ํ•˜๋Š”๋ฐ ํŽธ๋ฆฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ช… ๊ทœ์น™์„ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.

    $ git checkout -b feature-a/master # team-wide branch
    $ git checkout -b feature-a/maria  # Maria's personal branch
    $ git checkout -b feature-a/nick   # Nick's personal branch

ย ๊ฐœ์ธ์ด ์ž‘์—…ํ•œ ๋ธŒ๋žœ์น˜๋Š” ๊ณ„์†ํ•ด์„œ ํŒ€์ด ๊ตฌํ˜„ํ•˜๋Š” ๋ธŒ๋žœ์น˜๋กœ ํ•ฉ์ณ์ง€๊ณ  ๋‚˜์ค‘์— "master"์™€ ํ•ฉ์ณ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (see "Merging").

  • ๋ธŒ๋žœ์น˜๊ฐ€ ๋จธ์ง€๋œ ์ดํ›„์—๋Š” (๋‚จ๊ฒจ๋‘ฌ์•ผ ํ•  ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด) ๋ฆฌํŒŒ์ง€ํ† ๋ฆฌ์—์„œ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

    Tip: "master"๋ธŒ๋žœ์น˜์— ํ•ฉ์ณ์ง„ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณด๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”.

    $ git branch --merged | grep -v "\*"

Commits (์ปค๋ฐ‹)

  • ๊ฐ๊ฐ์˜ ์ปค๋ฐ‹์€ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๋ณ€ํ™”๋ฅผ ๋‚˜ํƒ€๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋…ผ๋ฆฌ์  ๋ณ€ํ™”๋ฅผ ํ•œ๋ฒˆ์— ์ปค๋ฐ‹ํ•˜์ง€ ๋งˆ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•˜๋‚˜์˜ ๋ฌธ์ œ์ ์„ ์ˆ˜์ •ํ•˜๊ณ  ๊ธฐ๋Šฅ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ ์‹œ์ผฐ๋‹ค๋ฉด, ๋‘ ๊ฐœ์˜ ์ปค๋ฐ‹์œผ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ•œ๊ฐœ์˜ ๋…ผ๋ฆฌ์  ๋ณ€ํ™”๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปค๋ฐ‹์œผ๋กœ ๋‚˜๋ˆ„์ง€ ๋งˆ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•˜๋‚˜์˜ ๊ตฌํ˜„๋œ ๊ธฐ๋Šฅ๊ณผ ๊ทธ๊ฒƒ์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ํ•œ ์ปค๋ฐ‹์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ปค๋ฐ‹์€ ๋นจ๋ฆฌ ๊ทธ๋ฆฌ๊ณ  ์ž์ฃผ ํ•˜์„ธ์š”. ๋…๋ฆฝ์ ์ธ ์ปค๋ฐ‹์€ ๋ฌด์–ธ๊ฐ€ ์ž˜๋ชป๋ฌ์„๋•Œ, ์ดํ•ดํ•˜๊ณ  ๋˜๋Œ๋ฆฌ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

  • ์ปค๋ฐ‹์€ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ˆœ์„œ๋ฅผ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ปค๋ฐ‹ X๋Š” ์ปค๋ฐ‹ Y์˜ ๋ณ€ํ™”์— ์˜์กดํ•œ๋‹ค๋ฉด ์ปค๋ฐ‹ Y๋Š” ์ปค๋ฐ‹ X ๋ณด๋‹ค ๋จผ์ € ์ผ์–ด๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Messages (๋ฉ”์‹œ์ง€)

  • ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ• ๋•Œ, ํ„ฐ๋ฏธ๋„ ๋ณด๋‹ค๋Š” ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

    # good
    $ git commit
    
    # bad
    $ git commit -m "Quick fix"

    ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•œ ์ปค๋ฐ‹์€ ํ•œ์ค„์— ๋ชจ๋“ ๊ฒƒ์„ ์จ์•ผํ•  ๊ฒƒ์ฒ˜๋Ÿผ ๋А๊ปด์ง‘๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ•ญ์ƒ ์ •๋ณด๊ฐ€ ์—†๊ณ , ๋ชจํ˜ธํ•œ ์ปค๋ฐ‹์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ์š”์•ฝํ•˜๋Š” ๋ฌธ์žฅ(์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”์‹œ์ง€์˜ ์ฒซ์ถœ)์€ ๊ฐ„๋‹จ๋ช…๋ฃŒํ•œ ์„ค๋ช…์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 50๊ธ€์ž๋ฅผ ๋„˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ นํ˜• ํ˜„์žฌ์‹œ์ œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฐ‹์˜ ์‹ค์งˆ์ ์ธ ์ œ๋ชฉ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์นจํ‘œ(์˜จ์ )๋กœ ๋๋‚˜๋Š” ๊ฒƒ์€ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    # good - 50๊ธ€์ž๋ฅผ ๋„˜์ง€์•Š๊ณ  ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ นํ˜• ํ˜„์žฌ์‹œ์ œ ๋ฌธ์žฅ 
    Mark huge records as obsolete when clearing hinting faults
    
    # bad
    fixed ActiveModel::Errors deprecation messages failing when AR was used outside of Rails.
  • ์ดํ›„์— ์ž์„ธํ•œ ์„ค๋ช…์„ ์œ„ํ•ด ์ด์–ด์ง€๋Š” ๋ฌธ์žฅ ์•ž์— ๋นˆ ์ค„์ด ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. 72๊ธ€์ž ์ •๋„์—์„œ ์ค„๋ฐ”๊ฟˆ์ด ๋ผ์•ผํ•˜๋ฉฐ ์™œ ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ–ˆ๋Š”์ง€, ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์ด ํ•„์š”ํ•˜๊ณ  ํ˜น์‹œ๋‚˜ ์žˆ์„์ง€ ๋ชจ๋ฅด๋Š” side-effects์— ๋Œ€ํ•ด์„œ ๊ธฐ์ˆ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๋˜ํ•œ ๊ด€๋ จ๋œ ๋ฆฌ์†Œ์Šค์„ ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ( ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฒ„๊ทธ ํŠธ๋ž˜์ปค์—์„œ ๊ด€๋ จ๋œ ์ด์Šˆ๋กœ ๋ฐ”๋กœ ๊ฐ€๋Š” ๋งํฌ )

    Short (50 chars or fewer) summary of changes
    
    More detailed explanatory text, if necessary. Wrap it to
    72 characters. In some contexts, the first
    line is treated as the subject of an email and the rest of
    the text as the body.  The blank line separating the
    summary from the body is critical (unless you omit the body
    entirely); tools like rebase can get confused if you run
    the two together.
    
    Further paragraphs come after blank lines.
    
    - Bullet points are okay, too
    
    - Use a hyphen or an asterisk for the bullet,
      followed by a single space, with blank lines in
      between
    
    Source http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

    ๊ถ๊ทน์ ์œผ๋กœ, ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ• ๋•Œ, ์ง€๊ธˆ๋ถ€ํ„ฐ 1๋…„ ํ›„์— ์ปค๋ฐ‹์„ ๊ฑฐ์Šฌ๋Ÿฌ ๊ฐˆ๋•Œ ๋ฌด์—‡์ด ํ•„์š”ํ•œ์ง€๋ฅผ ์ƒ๊ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋งŒ์•ฝ ์ปค๋ฐ‹ A๊ฐ€ ๋‹ค๋ฅธ ์ปค๋ฐ‹ B์— ์˜์กดํ•œ๋‹ค๋ฉด, ์ปค๋ฐ‹ A ๋ฉ”์‹œ์ง€์˜ ์‹œ์ž‘์€ ์˜์กด์„ฑ์„ ์–ธ๊ธ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฐ‹์„ ์–ธ๊ธ‰ํ• ๋•Œ๋Š” ์ปค๋ฐ‹ ํ•ด์‰ฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    ๋น„์Šทํ•˜๊ฒŒ, ์ปค๋ฐ‹ B์—์„œ ๋ฐœ์ƒ๋œ ๋ฒ„๊ทธ๋ฅผ ์ปค๋ฐ‹ A์—์„œ ํ’€์—ˆ๋‹ค๋ฉด ์ปค๋ฐ‹ A์—์„œ ๊ทธ๊ฒƒ์„ ์–ธ๊ธ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋งŒ์•ฝ ๋‹ค๋ฅธ ์ปค๋ฐ‹์— ๋ฐ€์–ด๋„ฃ์œผ๋ ค๋ฉด --squash๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์˜๋„๋ฅผ ํ™•์‹คํ•˜๊ฒŒ ํ‘œ์‹œํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด --fixup์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

    $ git commit --squash f387cab2

    (Tip: ๋ฆฌ๋ฒ ์ด์Šค ํ• ๋•Œ --autosquash๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ํ‘œ์‹œ๋œ ์ปค๋ฐ‹์€ ์ž๋™์œผ๋กœ ๋ฐ€์–ด ๋„ฃ์–ด์ง‘๋‹ˆ๋‹ค.)

Merging (๋จธ์ง€)

  • ๋ฐฐํฌ๋œ ์ด๋ ฅ(History)๋ฅผ ์žฌ ๊ธฐ๋กํ•˜์ง€ ๋งˆ์„ธ์š” ๋ฆฌํŒŒ์ง€ํ† ๋ฆฌ์˜ ์ด๋ ฅ์€ ์ œ๋Œ€๋กœ ๋˜์–ด ์žˆ์„๋•Œ ๊ฐ€์น˜์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ์ผ์ด ์‹ค์ œ๋กœ ์ผ์–ด๋‚ฌ๋Š”๊ฐ€๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌ๋œ ์ด๋ ฅ์„ ์ˆ˜์ •ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ”„๋กœ์ ํŠธ์—์„œ ์ผํ•˜๋Š” ๋ชจ๋‘์—๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

  • ๊ทธ๋Ÿฌ๋‚˜, ์ด๋ ฅ์„ ๋‹ค์‹œ ๊ธฐ๋กํ•ด๋„ ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š”

    • ์•„์ง ๋ฆฌ๋ทฐ๋˜์ง€ ์•Š์•˜๊ณ  ํ˜ผ์ž์„œ๋งŒ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜์ธ ๊ฒฝ์šฐ.

    • ๋ธŒ๋žœ์น˜๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  (์˜ˆ๋ฅผ ๋“ค์–ด squash commit๊ฐ™์€) ๋‚˜์ค‘์— ๋จธ์ง€ํ•˜๊ธฐ ์œ„ํ•ด "master"๋ฅผ ๋ฆฌ๋ฒ ์ด์Šค ํ•˜๋Š” ๊ฒฝ์šฐ.

    ์ด๋ง์€ ์ ˆ๋Œ€ "master"๋ธŒ๋žœ์น˜๋‚˜ ๋‹ค๋ฅธ ํŠน๋ณ„ํ•œ ๋ธŒ๋žœ์น˜์˜ ์ด๋ ฅ์„ ์žฌ๊ธฐ๋กํ•˜์ง€ ๋ง๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์˜ˆ๋ฅผ ๋“ค๋ฉด, ์šด์˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜, CI ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•˜๋Š” )

  • ์ด๋ ฅ์„ "๊น”๋”"ํ•˜๊ณ  "๋‹จ์ˆœ"ํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”. ๋ธŒ๋žœ์น˜๋ฅผ "๋จธ์ง€ํ•˜๊ธฐ ๋ฐ”๋กœ ์ง์ „์—"

    1. ์ด๋ ฅ์ด ๊ด€์Šต์„ ๋”ฐ๋ฅด๊ณ  ์žˆ๋Š”์ง€, ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ–‰์œ„๋Š” ์—†๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. (squash/reorder commits, reword messages etc.)

    2. ๋จธ์ง€๋  ๋ธŒ๋žœ์น˜๋ฅผ ๋ฆฌ๋ฒ ์ด์Šค ํ•˜์„ธ์š”.

      [my-branch] $ git fetch
      [my-branch] $ git rebase origin/master
      # then merge

      ์ด ๊ฒฐ๊ณผ๋Š” "master"๋ธŒ๋žœ์น˜์˜ ๋งจ๋’ค์— ์ด๋ ฅ์„ ๋ถ™์—ฌ์„œ ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์ด๋ ฅ์„ ๋ณด์—ฌ์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

      *(๋…ธํŠธ: ์ด๋Ÿฌํ•œ ์ „๋žต์€ ์งง์€ ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ธŒ๋žœ์น˜๋ฅผ ์œ ์ง€ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ํ•œํŽธ์œผ๋กœ ๋ฆฌ๋ฒ ์ด์Šคํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค "master"๋ธŒ๋žœ์น˜์— ๋จธ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์€ ๊ฒฝ์šฐ๋„ ์ข…์ข… ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋งŒ์•ฝ ๋ธŒ๋žœ์น˜์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์ปค๋ฐ‹์ด ์žˆ๋‹ค๋ฉด, fast-forward ๋จธ์ง€๋Š” ํ•˜์ง€ ๋งˆ์„ธ์š”.

    # good - ๋จธ์ง€ ์ปค๋ฐ‹์ด ๋ฐ˜๋“œ์‹œ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค. 
    $ git merge --no-ff my-branch
    
    # bad
    $ git merge my-branch

Misc. (๊ธฐํƒ€)

  • ๋‹ค์–‘ํ•œ workflow๋“ค์ด ์กด์žฌํ•˜๊ณ  ๊ฐ๊ฐ์ด ๊ฐ•์ ๊ณผ ์•ฝ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค workflow๊ฐ€ ํ˜„์žฌ ์ƒํ™ฉ์— ์ ํ•ฉํ• ์ง€๋Š”, ํŒ€, ํ”„๋กœ์ ํŠธ ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ ์ ˆ์ฐจ์— ๋”ฐ๋ผ ์ •ํ•ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์–ด๋–ค workflow๋ฅผ ์„ ํƒํ•˜๊ณ  ๊ณ„์†ํ• ์ง€๋Š” ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๋™์ผํ•œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ด๊ฒƒ์€ workflow์™€ ์—ฐ๊ด€๋˜์žˆ์„ ๋ฟ ์•„๋‹ˆ๋ผ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ, ๋ธŒ๋žœ์น˜ ๋ช…์ด๋‚˜ ํƒœ๊ทธ๋ฅผ ๋‹ฌ๋•Œ๋„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌํŒŒ์ง€ํ† ๋ฆฌ ์ „์ฒด์— ๋™์ผํ•œ ๊ทœ์น™์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์€ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๋˜๋Š” ๋กœ๊ทธ๋ฅผ ์ฐพ์„ ๋•Œ, ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค.

  • ํ‘ธ์‹œํ•˜๊ธฐ ์ „์— ํ…Œ์ŠคํŠธ ํ•˜์„ธ์š”. ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ์ผ์„ ํ‘ธ์‹œํ•˜์ง€ ๋งˆ์„ธ์š”.

  • ๋ฆด๋ฆฌ์ฆˆ๋‚˜ ์ค‘์š”ํ•œ ์ด๋ ฅ์„ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด annotated tags๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

    ๊ฐœ์ธ์ ์ผ ๋•Œ๋Š” lightweight tags ์ฆ‰, ๋‚˜์ค‘ ์ฐธ์กฐ๋ฅผ ์œ„ํ•œ ๋ถ๋งˆํฌ ์ปค๋ฐ‹ ๊ฐ™์€๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.

  • ์ข…์ข… ์„ฑ๋Šฅ ์œ ์ง€ ์ž‘์—…์„ ํ†ตํ•ด ๋ฆฌํŒŒ์ง€ํ† ๋ฆฌ๊ฐ€ ์ข‹์€ ๋ชจ์Šต์„ ๊ฐ€์ง€๋„๋ก ์œ ์ง€ํ•˜์„ธ์š”. ๊ทธ๊ฒƒ์ด ๋กœ์ปฌ ๋ฆฌํŒŒ์ง€ํ† ๋ฆฌ์ด๊ฑด, ์›๊ฒฉ ๋ฆฌํŒŒ์ง€ํ† ๋ฆฌ๊ฑด ๊ฐ„์—

License

cc license

์ด ๋ฌธ์„œ๋Š” Creative Commons Attribution 4.0 International license๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

Credits

chris

About

A Git Style Guide

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors