Skip to content

Git ์ „๋žต

Gakko edited this page Dec 13, 2022 · 16 revisions

Branch ์ „๋žต

git flow(์ฐธ๊ณ ๋งํฌ), github flow(์ฐธ๊ณ ๋งํฌ), gitlab flow

github flow + develop

  • ์ •์˜

    1. ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋Š” ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ๋ธŒ๋žœ์น˜์ด๋‹ค.
    2. ์ƒˆ๋กœ์šด ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์ž‘์—…์„ master๋กœ๋ถ€ํ„ฐ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. (i.e new-oauth2)
    3. ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์—์„œ ์ปค๋ฐ‹ ํ›„ ์ •๊ธฐ์ ์œผ๋กœ origin ์— pushํ•œ๋‹ค.
    4. ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๊ฑฐ๋‚˜ ๋จธ์ง€ํ•  ์ค€๋น„๊ฐ€ ๋˜๋ฉด p-r์„ ์—ฐ๋‹ค.
    5. ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๊ณ  master ๋กœ ํ‘ธ์‰ฌ๋˜๋ฉด, ์ฆ‰์‹œ ๋ฐฐํฌํ•œ๋‹ค.

    GIt-flow, GitLab-flow, Github-flow๋ž€?

    ๐Ÿ’ก Git flow๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š์€ ์ด์œ 

    • git flow๋Š” ๊ฐœ๋ฐœ๊ณผ ํ…Œ์ŠคํŠธ, ๋ฆด๋ฆฌ์ฆˆ ๋“ฑ์„ ๋™์‹œ์— ์ง„ํ–‰ํ•˜๋ฉด์„œ ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ธŒ๋žœ์น˜ ์ „๋žต์ด๋‹ค.
    • ํ˜„์žฌ ์„œ๋น„์Šค๊ฐ€ ๋ฐฐํฌ๋˜์–ด ์žˆ์ง€ ์•Š๊ณ  ๋ณ„๋„์˜ ํŒ€(์˜ˆ๋ฅผ ๋“ค์–ด QAํŒ€)์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฑฐ๋‚˜ ํ•˜์ง€ ์•Š๋Š”๋ฐ, git flow๋ฅผ ์จ์•ผํ• ๊นŒ?

    ๐Ÿ’ก ๊ทธ๋ ‡๋‹ค๋ฉด Github Flow๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”?

    • ๋ธŒ๋žœ์น˜ ์ „๋žต์ด ๋‹จ์ˆœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์„ฑ์ด ๋†’์„ ๊ฑฐ๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.
    • Main ๋ธŒ๋žœ์น˜๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•ด์•ผํ•˜๋Š” ์ „๋žต์ด๊ธฐ ๋•Œ๋ฌธ์— PR์„ ๋‚ ๋ฆด ๋•Œ๋งˆ๋‹ค ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊ฐ€ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๊ฐ€ ์„œ๋น„์Šค๋กœ ์ •์ฐฉ๋˜๊ณ ๋‚˜์„œ git flow๋ฅผ ์ ์šฉํ•ด๋„ ๊ดœ์ฐฎ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
  • Main๋ธŒ๋žœ์น˜๋ฅผ ์ •๋ง ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•ด์•ผํ•œ๋‹ค.

    • PR, ์ฝ”๋“œ๋ฆฌ๋ทฐ ์‹ ๊ฒฝ์“ฐ๊ธฐ
    • ESLint๋กœ console.log() ์ ์œผ๋ฉด ๊ฒฝ๊ณ ๋œจ๊ฒŒ ๋งŒ๋“ค๊ธฐ
  • front์™€ back

    • ์ด์Šˆ๋ฅผ ๋ฐฑ์—”๋“œ ํ”„๋ก ํŠธ์—”๋“œ ๋‚˜๋ˆ ์„œ ์ƒ์„ธํ•˜๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค.
    • ์ด์Šˆ ๋„˜๋ฒ„๋ฅผ ๋ธŒ๋žœ์น˜๋ช… ์•ž์— ๋ถ™์ž„์œผ๋กœ์จ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • branch ๊ตฌ์กฐ

    • main - ๋ฐฐํฌ์šฉ. ์ตœ์ƒ๋‹จ ๋ธŒ๋žœ์น˜
    • develop - ๊ฐœ๋ฐœ ํ†ตํ•ฉ์šฉ
    • feature/* - ๊ฐœ๋ฐœ ํ”ผ์ณ๋ณ„ ๋ธŒ๋žœ์น˜
    • fix/* - ๋ฒ„๊ทธ ์ˆ˜์ • ํ”ผ์ณ๋ณ„ ๋ธŒ๋žœ์น˜
    • refactor/* - ๋ฆฌํŒฉํ† ๋ง ๋ธŒ๋žœ์น˜

image

1. develop โ†’ [feature | fix | refactor]/${issueNumber}-${๊ธฐ๋Šฅ์ด๋ฆ„} โ†’ pr โ†’ develop
2. main -> develop -> main

ex) feature/50-login, fix/51-login-error

Branch ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜

  • (feature|fix|refactor)/<Issue#>-<Name>
  • ์ด์Šˆ๋‚˜๋ˆŒ ๋•Œ ๋ฐฑ์—”๋“œ, ํ”„๋ก ํŠธ ๋‚˜๋ˆ ์„œ ์ด์Šˆ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.
  • ์ด์Šˆ์™€ ๊ด€๋ จ์ง€์–ด ์˜์–ด๋กœ ๋„ค์ด๋ฐํ•œ๋‹ค.
์ปค๋ฐ‹ ํƒ€์ž… ์„ค๋ช…
feature ์ƒˆ ๊ธฐ๋Šฅ
refactor ๋ฆฌํŒฉํ† ๋ง
fix ๋ฒ„๊ทธ ์ˆ˜์ •

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

  • Commit Type

    • feature: ์ด์Šˆ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•˜์—ฌ ์ฝ”๋“œ๊ฐ€ ์ˆ˜์ •๋œ ๊ฒฝ์šฐ
    • fix: ๋ฒ„๊ทธ ์ˆ˜์ •
    • chore: ์ฝ”๋“œ ์ƒ์˜ ์ˆ˜์ •์ด ์—†๋Š” ์ˆ˜์ •
      • ํŒจํ‚ค์ง€ ์ˆ˜์ •์‚ฌํ•ญ
      • ์ฃผ์„
    • merge : merge ํ•  ๋•Œ(ex - master์—์„œ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์— ๋‚ด์šฉ์„ ๋“ค๊ณ ์˜ฌ๋•Œ)
    • refactor: ๋ฆฌํŒฉํ† ๋ง
    • docs: ๋ฌธ์„œํ™”
  • Commit Message

    • ์ ๋‹นํžˆ ํ•œ๊ธ€/์˜์–ด ์„ž์–ด์“ฐ์ž (๋˜๋„๋ก ํ•œ๊ธ€๋กœ)

  • PR

    PR์„ master๋กœ ๋จธ์ง€์‹œ squash ๋จธ์ง€ ์‚ฌ์šฉ

    • ํ•˜๋‚˜์˜ feature๋ฅผ ์ž‘๊ฒŒ ๊ฐ€์ ธ๊ฐ€ 1๋ช…์ด ์ฒ˜๋ฆฌ
      • ์„ธ๋ถ€์ ์ธ ๊ธฐ๋ก์ด master ๋ธŒ๋žœ์น˜์— ๋‚จ์•„์žˆ์„ ํ•„์š”๊ฐ€ ์—†์Œ
      • ๋„ˆ๋ฌด ์ƒ์„ธํ•œ ์ปค๋ฐ‹๋“ค์ด ์žˆ์œผ๋ฉด ์˜คํžˆ๋ ค ์ปค๋ฐ‹๋‚ด์—ญ ์ดํ•ดํ•˜๋Š”๊ฒŒ ํž˜๋“ฆ
      • ๋Œ€์‹  PR ๋ฉ”์‹œ์ง€๋ฅผ ์ž์„ธํ•˜๊ฒŒ ์ ๋Š”๋‹ค.

    PR ํ…œํ”Œ๋ฆฟ

    # ํ…œํ”Œ๋ฆฟ
    

    ์ฒดํฌ ๋ฆฌ์ŠคํŠธ

    • ์ ์ ˆํ•œ ์ œ๋ชฉ์œผ๋กœ ์ˆ˜์ •ํ–ˆ๋‚˜์š”?
    • ๊ด€๋ จ๋œ ์ด์Šˆ์™€ ์—ฐ๊ฒฐ ์‹œ์ผฐ๋‚˜์š”?
    • Target Branch๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •ํ–ˆ๋‚˜์š”?
    • Label์„ ์•Œ๋งž๊ฒŒ ์„ค์ •ํ–ˆ๋‚˜์š”?

    ์ž‘์—… ๋‚ด์—ญ

    • ์ž‘์—…ํ•œ ๋‚ด์šฉ์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

    ๋ฌธ์ œ ์ƒํ™ฉ๊ณผ ํ•ด๊ฒฐ

    • ์ž‘์—… ์ค‘ ๋งˆ์ฃผํ•œ ๋ฌธ์ œ์ƒํ™ฉ ๋ฐ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.

    ๋น„๊ณ 

    • ์ฐธ๊ณ ํ–ˆ๋˜ ๋งํฌ ๋“ฑ ์ฐธ๊ณ  ์‚ฌํ•ญ์„ ์ ์–ด์ฃผ์„ธ์š”. ์ฝ”๋“œ ๋ฆฌ๋ทฐํ•˜๋Š” ์‚ฌ๋žŒ์ด ์ฐธ๊ณ ํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์„ ์ž์œ ๋กœ์šด ํ˜•์‹์œผ๋กœ ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    PR ์ž‘์„ฑ ํ•ญ๋ชฉ

    image

    • PR ์ œ๋ชฉ

      • pr ์ œ๋ชฉ์€ ์ด์Šˆ ์ œ๋ชฉ์œผ๋กœ ํ•˜๊ธฐ
      • ex) [42-4] ์‚ฌ์šฉ์ž์˜ ์•„๋ฐ”ํƒ€ ์—…๋กœ๋“œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    • PR ์ปค๋ฐ‹ ์ œ๋ชฉ(ใ……ใ„ทใ„ฑใ……ใ„ท (#1))

      • pr ์ œ๋ชฉ (# pr-number)
    • PR ๋ฉ”์‹œ์ง€(ใ……ใ„ทใ„ฑใ……ใ„ท)

      • pr์˜ commit ๋‚ด์—ญ๋“ค

    Issue

    • ๋งค์ฃผ ์›”์š”์ผ ์Šคํ”„๋ฆฐํŠธ ํšŒ์˜ ํ›„์— ์ด์Šˆ ๋ฐœํ–‰
    • ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ์—์„œ ์•ˆ๊ฑด์œผ๋กœ ์ƒ์ •๋˜๋ฉด ์ด์Šˆ ์ถ”๊ฐ€ ๋ฐœํ–‰

    ์ด์Šˆ ์ œ๋ชฉ

    • [Feature|Bugfix|Refactor] ์ด์Šˆ ์ด๋ฆ„

      ex) [Feature] ๋ชจ๋ฐ”์ผ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๊ฐ€ ๋˜๋„๋ก heic ๋ณ€ํ™˜ํ•˜๊ธฐ

    ์ด์Šˆ ํ…œํ”Œ๋ฆฟ

    Feature ํ…œํ”Œ๋ฆฟ

    .github/ISSUE_TEMPLATE/feature_request.md
    

    name: Feature request about: ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์˜ˆ์ •์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. title: '[backlog-number] ' label: 'โœจย feature' assignees: ''

    ์š”๊ตฌ ์‚ฌํ•ญ

    • ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ƒ์„ธํ•˜๊ฒŒ ์ ์–ด์ฃผ์„ธ์š”.
      • ์ด๋ ‡๊ฒŒ ํ•˜์œ„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ ๊ทน ํ™œ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

    ์ฒดํฌ ๋ฆฌ์ŠคํŠธ

    • ์ž‘์—… ๋ชฉ๋ก์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
    • ์ž‘์—…์ž๊ฐ€ ์™„๋ฃŒํ•˜๋ฉด ์ฒดํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— PM์ด ํ™•์ธํ•˜๊ณ  ์‹ถ์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ์ž‘์„ฑํ•˜๋ฉด ๊ฐœ๋ฐœ ์ง„์ฒ™๋„๋ฅผ ํ™•์ธํ•˜๊ธฐ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.

    ๋น„๊ณ 

    • ์ฐธ๊ณ  ์‚ฌํ•ญ์„ ์ ์–ด์ฃผ์„ธ์š”. ํ•ด๋‹น ์ž‘์—…์„ ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์ฐธ๊ณ ํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์„ ์ž์œ ๋กœ์šด ํ˜•์‹์œผ๋กœ ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Bugfix ํ…œํ”Œ๋ฆฟ

    
    

    name: Bug request about: ์ˆ˜์ • ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. title: 'fix: ' label: '๐Ÿ›ย ์ˆ˜์ •' assignees: ''

    ๋ฒ„๊ทธ ์ƒ์„ธ ์„ค๋ช…

    • ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช…๊ณผ ์ •์ƒ์ ์ธ ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ๋ฒ„๊ทธ๋ฅผ ํƒ€์ธ์ด ํ•ด๊ฒฐํ•  ๊ฒฝ์šฐ์—๋„ ํ˜„์ƒ๊ณผ ์ž‘์—… ๋ชฉํ‘œ๋ฅผ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฐ€๋Šฅํ•˜๋ฉด ๋ฒ„๊ทธ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

    ์˜ˆ์ƒ๋˜๋Š” ์›์ธ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ œ์‹œ

    • ์˜ˆ์ƒ๋˜๋Š” ์›์ธ์„ ์ž์œ ๋กญ๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ฒ˜๋ฆฌํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ตฌ์ฒด์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

    ๋น„๊ณ  ๋ฐ ์ถ”๊ฐ€ ์ •๋ณด

    • ๊ธฐํƒ€ ์ฐธ๊ณ ํ• ๋งŒํ•œ ๋งํฌ๋‚˜ ๋„์›€์ด ๋ ๋งŒํ•œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

    Label

    • ๐ŸŒฟย ๋ฐฑ์—”๋“œ
    • ๐Ÿ’Žย ํ”„๋ก ํŠธ์—”๋“œ
    • ๐Ÿ›ย ์ˆ˜์ •
    • โœจย feature
    • ๐Ÿ›  ๋ฆฌํŒฉํ† ๋ง
    • ๐Ÿšจย ์šฐ์„ ์ˆœ์œ„-๊ธด๊ธ‰
    • ๐Ÿขย ์šฐ์„ ์ˆœ์œ„-์ผ๋ฐ˜

    Home

    ๐Ÿ”ญ ๊ฐœ๋ฐœ ๊ธฐ๋ก

    ๋ฐฑ๋กœ๊ทธ

    ๐Ÿ‘จ๐Ÿปโ€โš–๏ธ Ground Rules

    ๐Ÿคก ์Šคํฌ๋Ÿผ ๊ธฐ๋ก

    ์Šคํฌ๋Ÿผ๊ธฐ๋ก

    ๐Ÿƒ๐Ÿปโ€โ™‚๏ธ ์Šคํ”„๋ฆฐํŠธ ํšŒ์˜

    ๋งค์ฃผ์˜ ์Šคํ”„๋ฆฐํŠธ ํšŒ์˜!

    ๐Ÿ“” ํšŒ๊ณ ๋ก

    ํŒ€ํšŒ๊ณ 
    ๊ฐœ์ธํšŒ๊ณ 

    ๐Ÿ“š ์ฃผ์š” ๊ฐœ๋ฐœ์ผ์ง€

    ๐Ÿงš ๋” ์“ฐ๊ธฐ ์ข‹์€ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ UX ๊ฐœ์„ ๊ธฐ

    ๐Ÿ“„ ํŽ˜์ด์ง€๋„ค์ด์…˜๊ณผ ์ฟผ๋ฆฌ ์ตœ์ ํ™”

    ๐Ÿšซ ํ”„๋ก ํŠธ์—”๋“œ ์„ ์–ธ์  ์—๋Ÿฌ์ฒ˜๋ฆฌ

    ๐Ÿ“• ์Šคํ† ๋ฆฌ๋ถ ์ด๊ฑฐ ์™œ ์“ฐ๋‚˜์š”?

    ๐Ÿšฐ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

    ๐Ÿคบ N+1 Problem

    ๐Ÿงน ๋ชจ๋‹ฌ ๋กœ์ง ๋ฆฌํŒฉํ† ๋ง

    ๐Ÿงผ SSE ๊ธฐ๋ฐ˜์˜ ์•Œ๋ฆผ์œผ๋กœ ๊ฐœํŽธํ•˜๋Š” ์ด์œ 

    ๐Ÿ‘‰ ...๋” ๋ณด๊ธฐ

    ๐Ÿ“ฑ ๋ฐ๋ชจ

    ๋ฐ๋ชจ ์ค€๋น„

    Clone this wiki locally